{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "8c58daea",
   "metadata": {},
   "source": [
    "# 基于用户行为序列的流失率预测\n",
    "\n",
    "* 背景：  \n",
    "深度学习不仅在NLP和CV领域取得了重要突破，在推荐与广告系统等经典互联网应用中也有很多应用。长期以来用户行为序列分析与预测都是推荐/搜索/广告等领域的重要课题。本文基于前人针对社交网络用户流失的分析方法，分析了音乐APP用户的行为习惯，建立了lightGBM和LSTM预测模型。\n",
    "  \n",
    "  \n",
    "* 结论：\n",
    "* 1.基于用户活跃天数的LSTM模型能有效预测用户的流失情况，效果(F1得分0.98)略低于经典的模型lightGBM(F1得分0.99)。\n",
    "* 2.词向量与tsne结合的方式，能够有效的提取歌曲风格和用户关注话题信息。\n",
    "* 3.用户流失(留存)最关键的因素是：最后1次使用日期，使用天数，平均每(活跃)天收听的歌曲数，是否vip客户，平均每(活跃)天操作次数，用具体的操作类型、操作页面、用户基础属性等因素关系不大。\n",
    "  \n",
    "  \n",
    "* 方法:\n",
    "* 1.用户行为序编码。\n",
    "* 2.基于bert-embedding+tsne的词向量编码。\n",
    "* 3.Kmeans聚类。\n",
    "* 4.lightGBM分类与SHAP解释。\n",
    "* 5.LSTM序列预测。\n",
    "  \n",
    "  \n",
    "* 主要参考文献：\n",
    "* [I Know You’ll Be Back: Interpretable New User Clustering and Churn Prediction on a Mobile Social Application](https://arxiv.org/abs/1910.01447)  \n",
    "由于作者没有提供数据集，只能根据作者提供的[源码](https://github.com/yangji9181/ClusChurn)，使用[2021DIGIX赛题数据集](https://developer.huawei.com/consumer/cn/activity/devStarAI/algo/competition.html#/preliminary/info/004/data)近似复现。\n",
    "比赛数据（采样+脱敏后）抽取的时间范围是连续60 天的用户行为数据和行为对应匹配的用户、歌曲、歌手数据。\n",
    "  \n",
    "  \n",
    "* 其他参考文献：\n",
    "* 基于lstm和cnn的方法:[ChurnPrediction](https://github.com/SingingData/ChurnPrediction),[《自然语言处理：基于预训练模型的方法》4.6.7基于循环神经网络的情感分类](https://github.com/HIT-SCIR/plm-nlp-code/blob/main/chp4/lstm_sent_polarity.py)\n",
    "* 基于lightGBM的方法:[客户流失预测及营销方案](https://mp.weixin.qq.com/s/nq_ZX6u8o5S_phrJ3AFOvg)，[源码](https://github.com/aialgorithm/Blog/tree/master/projects/%E5%AE%A2%E6%88%B7%E6%B5%81%E5%A4%B1%E9%A2%84%E6%B5%8B%E5%8F%8A%E8%90%A5%E9%94%80),[可解释机器学习-shap value的使用](https://blog.csdn.net/qq_41103204/article/details/104896630)\n",
    "* [推荐中的序列化建模：Session-based neural recommendation](https://zhuanlan.zhihu.com/p/30720579)\n",
    "* [DeepCTR：易用可扩展的深度学习点击率预测算法包](https://zhuanlan.zhihu.com/p/53231955)\n",
    "  \n",
    "  \n",
    "* 思考：\n",
    "* 1.数据格式的整理占用了80%的时间，实际工作接触的数据往往会比竞赛数据有更多的异常。\n",
    "* 2.由于作者未能提供原始数据，很多情况下只能猜测源码的思路，比较吃力，说明一个好的分享应该尽可能完整，方便复现。\n",
    "* 3.深度学习的难度一方面在于模型本身(包括数学原理)的复杂，另一方面在于NLP/CV之外的案例很少，需要大量查阅+尝试才能形成匹配的思路。\n",
    "* 4.硬件资源(特别是GPU)限制了很多从建模到调参的很多想法。\n",
    "* 5.现实中大量的不均衡类别场景，如果能根据业务设计优化目标(损失函数)，也许会比经典的F1、混淆矩阵评估更有价值。"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "21fdcdc4",
   "metadata": {},
   "source": [
    "# 一.数据预处理：  \n",
    "使用2021DIGIX赛题数据集：2021_1_data.zip.[基于多目标多视图的用户留存周期预测](https://developer.huawei.com/consumer/cn/activity/devStarAI/algo/competition.html#/preliminary/info/004/data),\n",
    "<br/>也可在[百度飞桨AI studio](https://aistudio.baidu.com/aistudio/datasetdetail/105868/0)下载"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "3d57f11d",
   "metadata": {},
   "outputs": [],
   "source": [
    "#csv文件拆分并转换成parquet\n",
    "#https://www.cnblogs.com/harrylyx/p/15141986.html\n",
    "#https://www.cnblogs.com/hider/p/15263528.html"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "dde0dde0",
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd\n",
    "import numpy as np"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4d717550",
   "metadata": {},
   "source": [
    "## 1.1.用户特征表user_info分层抽样，作为后续数据表筛选的基准"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "1ed22900",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>device_id</th>\n",
       "      <th>gender</th>\n",
       "      <th>age</th>\n",
       "      <th>device</th>\n",
       "      <th>city</th>\n",
       "      <th>is_vip</th>\n",
       "      <th>topics</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>203724992</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>34</td>\n",
       "      <td>167</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>203709051</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>268</td>\n",
       "      <td>289</td>\n",
       "      <td>1.0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>203685345</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>178</td>\n",
       "      <td>59</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>203650429</td>\n",
       "      <td>0.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>167</td>\n",
       "      <td>270</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>203636013</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>517</td>\n",
       "      <td>91</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   device_id  gender  age  device  city  is_vip topics\n",
       "0  203724992     0.0  1.0      34   167     NaN    NaN\n",
       "1  203709051     0.0  1.0     268   289     1.0    NaN\n",
       "2  203685345     0.0  NaN     178    59     NaN    NaN\n",
       "3  203650429     0.0  4.0     167   270     0.0    NaN\n",
       "4  203636013     0.0  1.0     517    91     NaN    NaN"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#用户特征表\n",
    "user_info_df = pd.read_csv('2_user_info.csv', sep='|')\n",
    "user_info_df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "id": "d76e532b",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2000000\n",
      "2000000\n"
     ]
    }
   ],
   "source": [
    "#用户数量统计:原始文件共200万用户\n",
    "print(len(user_info_df))\n",
    "print(len(user_info_df['device_id'].unique()))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "id": "04eee24b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "gender  is_vip\n",
       "0.0     NaN       1187720\n",
       "1.0     NaN        561165\n",
       "0.0     0.0         98499\n",
       "        1.0         74591\n",
       "1.0     0.0         45719\n",
       "        1.0         28032\n",
       "NaN     NaN          4069\n",
       "        0.0           117\n",
       "        1.0            88\n",
       "dtype: int64"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#观察数据分布:由于内存限制需要分层抽样，所以从gender和is_vip两个变量入手\n",
    "user_info_df[['gender','is_vip']].value_counts(dropna=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "id": "da6b4c0e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "gender  is_vip\n",
       " 0.0    -99.0     1187720\n",
       " 1.0    -99.0      561165\n",
       " 0.0     0.0        98499\n",
       "         1.0        74591\n",
       " 1.0     0.0        45719\n",
       "         1.0        28032\n",
       "-99.0   -99.0        4069\n",
       "         0.0          117\n",
       "         1.0           88\n",
       "dtype: int64"
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#替换异常值\n",
    "user_info_df['gender'].fillna(-99, inplace = True)\n",
    "user_info_df['is_vip'].fillna(-99, inplace = True)\n",
    "user_info_df[['gender','is_vip']].value_counts(dropna=False)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "ad593d2c",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "200000\n",
      "         device_id  gender  age  device  city  is_vip topics\n",
      "1062515   30341045     0.0  2.0     167   321     0.0    NaN\n",
      "544103   175882254     0.0  2.0     295    19     1.0    NaN\n",
      "1989442  112512666     1.0  3.0     285   102   -99.0    NaN\n",
      "1917752   20486702     0.0  NaN      28   273   -99.0    NaN\n",
      "1991476    6981221     0.0  3.0     311   122   -99.0    NaN\n"
     ]
    }
   ],
   "source": [
    "#由于内存限制，分层抽样20万用户进行分析\n",
    "from sklearn.model_selection import train_test_split\n",
    "user_info_df,X_test, y_train, y_test = train_test_split(user_info_df,user_info_df[['gender','is_vip']],\n",
    "                                                    test_size=0.9, stratify=user_info_df[['gender','is_vip']],random_state=10)\n",
    "print(len(user_info_df))\n",
    "print(user_info_df.head())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "56d251b1",
   "metadata": {},
   "outputs": [],
   "source": [
    "#清空不用的变量\n",
    "del X_test, y_train, y_test"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0373dd3b",
   "metadata": {},
   "source": [
    "## 1.2.读取其他数据文件"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 95,
   "id": "52cb74af",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "2000000\n",
      "   device_id                                               days\n",
      "0  194045574                 4#15#22#34#35#36#38#40#41#42#43#44\n",
      "1  194045591  1#4#8#10#11#12#13#14#15#16#17#18#19#20#21#22#2...\n",
      "2  194045955  1#2#3#4#5#6#7#9#10#11#12#13#16#20#21#22#23#24#...\n",
      "3  194046101            1#2#15#46#49#50#51#52#53#54#55#56#57#59\n",
      "4  194046455  4#6#9#10#11#12#13#14#15#19#20#22#23#24#25#26#2...\n"
     ]
    }
   ],
   "source": [
    "#设备活跃表device_active读取\n",
    "device_active_df = pd.read_csv('1_device_active.csv', sep='|')\n",
    "print(len(device_active_df))\n",
    "print(device_active_df.head())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 96,
   "id": "f7593d3b",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "200000\n",
      "    device_id                                               days\n",
      "0   194045574                 4#15#22#34#35#36#38#40#41#42#43#44\n",
      "15  194048640  1#6#10#11#12#14#15#18#20#21#22#23#27#28#29#34#...\n",
      "23  194050284                 1#3#4#6#38#39#41#42#50#53#54#55#57\n",
      "32  194052024             10#19#23#33#38#41#42#43#44#45#46#51#60\n",
      "37  194053501  1#3#4#5#6#7#8#12#13#15#16#17#19#21#23#25#27#29...\n"
     ]
    }
   ],
   "source": [
    "#设备活跃表device_active筛选\n",
    "device_active_df=device_active_df[device_active_df['device_id'].isin(user_info_df['device_id'])]\n",
    "print(len(device_active_df))\n",
    "print(device_active_df.head())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "5789afae",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "0    2000000\n",
      "1    2000000\n",
      "2    2000000\n",
      "3    2000000\n",
      "4    2000000\n",
      "5    2000000\n",
      "6    2000000\n",
      "7    2000000\n",
      "8    2000000\n",
      "9    2000000\n",
      "10    2000000\n",
      "11    2000000\n",
      "12    2000000\n",
      "13    2000000\n",
      "14    2000000\n",
      "15    2000000\n",
      "16    1049707\n"
     ]
    }
   ],
   "source": [
    "#用户行为表user_behavior筛选：由于文件接近10G，采用分块读取\n",
    "\n",
    "\n",
    "reader = pd.read_csv('4_user_behavior.csv', sep='|', chunksize=2000000)\n",
    "for i, chunk in enumerate(reader):\n",
    "    print(i, '  ', len(chunk))\n",
    "    #选择数据\n",
    "    temp_df=chunk[chunk['device_id'].isin(user_info_df['device_id'])]\n",
    "    if i==0 and len(temp_df)>0:\n",
    "        user_behavior_df=temp_df\n",
    "    if i>0 and len(temp_df)>0:\n",
    "        user_behavior_df=pd.concat([user_behavior_df,temp_df],ignore_index=True)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "10418bac",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "3307124\n",
      "195008\n",
      "   device_id  day                                              pages  \\\n",
      "0  203726210    8                                     null#null#null   \n",
      "1  203718406   46  null#32#32#16#32#32#32#null#32#16#16#16#16#32#...   \n",
      "2  203695489   36                                              16#16   \n",
      "3  203663610   26  29#16#29#29#29#29#null#29#29#29#29#29#29#29#29...   \n",
      "4  203649792   36                                                 16   \n",
      "\n",
      "                                           music_ids  \\\n",
      "0                                     null#null#null   \n",
      "1  5017116#4973316#4602314#4602314#4602314#460231...   \n",
      "2                                    4632924#4632924   \n",
      "3  10203279#8598481#4563053#4184994#4872587#10128...   \n",
      "4                                            9048154   \n",
      "\n",
      "                                             actions  channel  \n",
      "0                                              1#1#1      8.0  \n",
      "1          3#1#1#1#1#1#1#7#1#2#2#4#4#1#1#8#1#1#1#8#1      5.0  \n",
      "2                                                1#1      5.0  \n",
      "3  1#1#1#1#1#1#7#1#1#1#1#1#1#1#1#1#1#1#8#1#1#1#1#...      5.0  \n",
      "4                                                  1      5.0  \n"
     ]
    }
   ],
   "source": [
    "#查看用户行为数据:有19.5万个设备有记录，超出预期\n",
    "print(len(user_behavior_df))\n",
    "print(len(user_behavior_df['device_id'].unique()))\n",
    "print(user_behavior_df.head())"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "814fcb6c",
   "metadata": {},
   "outputs": [],
   "source": [
    "#删除多余变量\n",
    "del chunk,temp_df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "ccd747d0",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Applications/anaconda3/envs/mypy37/lib/python3.7/site-packages/IPython/core/interactiveshell.py:3437: FutureWarning: The error_bad_lines argument has been deprecated and will be removed in a future version.\n",
      "\n",
      "\n",
      "  exec(code_obj, self.user_global_ns, self.user_ns)\n",
      "Skipping line 21039: '|' expected after '\"'\n",
      "Skipping line 21466: '|' expected after '\"'\n",
      "Skipping line 23006: '|' expected after '\"'\n",
      "Skipping line 23830: '|' expected after '\"'\n",
      "Skipping line 32110: '|' expected after '\"'\n",
      "Skipping line 36033: '|' expected after '\"'\n",
      "Skipping line 36034: '|' expected after '\"'\n",
      "Skipping line 38482: '|' expected after '\"'\n",
      "Skipping line 60321: '|' expected after '\"'\n",
      "Skipping line 113108: '|' expected after '\"'\n",
      "Skipping line 118738: '|' expected after '\"'\n",
      "Skipping line 127295: '|' expected after '\"'\n",
      "Skipping line 128527: '|' expected after '\"'\n",
      "Skipping line 144796: '|' expected after '\"'\n",
      "Skipping line 145969: '|' expected after '\"'\n",
      "Skipping line 145997: '|' expected after '\"'\n",
      "Skipping line 145998: '|' expected after '\"'\n",
      "Skipping line 147840: '|' expected after '\"'\n",
      "Skipping line 148074: '|' expected after '\"'\n",
      "Skipping line 153331: '|' expected after '\"'\n",
      "Skipping line 174348: field larger than field limit (131072)\n",
      "Skipping line 226113: '|' expected after '\"'\n",
      "Skipping line 250352: '|' expected after '\"'\n",
      "Skipping line 267520: '|' expected after '\"'\n",
      "Skipping line 269702: '|' expected after '\"'\n",
      "Skipping line 271186: '|' expected after '\"'\n",
      "Skipping line 277035: '|' expected after '\"'\n",
      "Skipping line 284774: '|' expected after '\"'\n",
      "Skipping line 343442: '|' expected after '\"'\n",
      "Skipping line 345837: '|' expected after '\"'\n",
      "Skipping line 392703: '|' expected after '\"'\n",
      "Skipping line 394510: '|' expected after '\"'\n",
      "Skipping line 397407: '|' expected after '\"'\n",
      "Skipping line 401887: '|' expected after '\"'\n",
      "Skipping line 402849: '|' expected after '\"'\n",
      "Skipping line 406019: '|' expected after '\"'\n",
      "Skipping line 410000: '|' expected after '\"'\n",
      "Skipping line 410001: '|' expected after '\"'\n",
      "Skipping line 418791: '|' expected after '\"'\n",
      "Skipping line 470926: '|' expected after '\"'\n",
      "Skipping line 492734: '|' expected after '\"'\n",
      "Skipping line 517932: '|' expected after '\"'\n",
      "Skipping line 521337: '|' expected after '\"'\n",
      "Skipping line 521891: '|' expected after '\"'\n",
      "Skipping line 522289: '|' expected after '\"'\n",
      "Skipping line 523680: '|' expected after '\"'\n",
      "Skipping line 525730: '|' expected after '\"'\n",
      "Skipping line 525957: '|' expected after '\"'\n",
      "Skipping line 527169: '|' expected after '\"'\n",
      "Skipping line 528559: '|' expected after '\"'\n",
      "Skipping line 530080: '|' expected after '\"'\n",
      "Skipping line 534772: '|' expected after '\"'\n",
      "Skipping line 557696: '|' expected after '\"'\n",
      "Skipping line 557701: '|' expected after '\"'\n",
      "Skipping line 566082: '|' expected after '\"'\n",
      "Skipping line 566519: '|' expected after '\"'\n",
      "Skipping line 611579: '|' expected after '\"'\n",
      "Skipping line 619256: '|' expected after '\"'\n",
      "Skipping line 619283: '|' expected after '\"'\n",
      "Skipping line 641906: '|' expected after '\"'\n",
      "Skipping line 641907: '|' expected after '\"'\n",
      "Skipping line 643486: '|' expected after '\"'\n",
      "Skipping line 643911: '|' expected after '\"'\n",
      "Skipping line 644218: '|' expected after '\"'\n",
      "Skipping line 647621: '|' expected after '\"'\n",
      "Skipping line 648051: '|' expected after '\"'\n",
      "Skipping line 659232: '|' expected after '\"'\n",
      "Skipping line 659234: '|' expected after '\"'\n",
      "Skipping line 675189: '|' expected after '\"'\n",
      "Skipping line 675781: '|' expected after '\"'\n",
      "Skipping line 681475: '|' expected after '\"'\n",
      "Skipping line 722973: '|' expected after '\"'\n",
      "Skipping line 738970: '|' expected after '\"'\n",
      "Skipping line 739462: '|' expected after '\"'\n",
      "Skipping line 766123: '|' expected after '\"'\n",
      "Skipping line 767298: '|' expected after '\"'\n",
      "Skipping line 772566: '|' expected after '\"'\n",
      "Skipping line 772793: '|' expected after '\"'\n",
      "Skipping line 773608: '|' expected after '\"'\n",
      "Skipping line 774029: '|' expected after '\"'\n",
      "Skipping line 774552: '|' expected after '\"'\n",
      "Skipping line 774558: '|' expected after '\"'\n",
      "Skipping line 781969: '|' expected after '\"'\n",
      "Skipping line 805871: '|' expected after '\"'\n",
      "Skipping line 826441: '|' expected after '\"'\n",
      "Skipping line 848204: '|' expected after '\"'\n",
      "Skipping line 857449: '|' expected after '\"'\n",
      "Skipping line 890488: '|' expected after '\"'\n",
      "Skipping line 891370: '|' expected after '\"'\n",
      "Skipping line 891371: '|' expected after '\"'\n",
      "Skipping line 898437: '|' expected after '\"'\n",
      "Skipping line 900773: '|' expected after '\"'\n",
      "Skipping line 907879: '|' expected after '\"'\n",
      "Skipping line 907880: '|' expected after '\"'\n",
      "Skipping line 920590: '|' expected after '\"'\n",
      "Skipping line 933172: '|' expected after '\"'\n",
      "Skipping line 992176: '|' expected after '\"'\n",
      "Skipping line 1000154: '|' expected after '\"'\n",
      "Skipping line 1004002: '|' expected after '\"'\n",
      "Skipping line 1012960: '|' expected after '\"'\n",
      "Skipping line 1014655: '|' expected after '\"'\n",
      "Skipping line 1014831: '|' expected after '\"'\n",
      "Skipping line 1016733: '|' expected after '\"'\n",
      "Skipping line 1016860: '|' expected after '\"'\n",
      "Skipping line 1017116: '|' expected after '\"'\n",
      "Skipping line 1025251: '|' expected after '\"'\n",
      "Skipping line 1030174: '|' expected after '\"'\n",
      "Skipping line 1043624: '|' expected after '\"'\n",
      "Skipping line 1065242: '|' expected after '\"'\n",
      "Skipping line 1087278: '|' expected after '\"'\n",
      "Skipping line 1089761: '|' expected after '\"'\n",
      "Skipping line 1096918: '|' expected after '\"'\n",
      "Skipping line 1100425: '|' expected after '\"'\n",
      "Skipping line 1115717: '|' expected after '\"'\n",
      "Skipping line 1139080: '|' expected after '\"'\n",
      "Skipping line 1139260: '|' expected after '\"'\n",
      "Skipping line 1140023: '|' expected after '\"'\n",
      "Skipping line 1140888: '|' expected after '\"'\n",
      "Skipping line 1143141: '|' expected after '\"'\n",
      "Skipping line 1143541: '|' expected after '\"'\n",
      "Skipping line 1149839: '|' expected after '\"'\n",
      "Skipping line 1155900: '|' expected after '\"'\n",
      "Skipping line 1168996: '|' expected after '\"'\n",
      "Skipping line 1188292: '|' expected after '\"'\n",
      "Skipping line 1215595: '|' expected after '\"'\n",
      "Skipping line 1246101: '|' expected after '\"'\n",
      "Skipping line 1246102: '|' expected after '\"'\n",
      "Skipping line 1264268: '|' expected after '\"'\n",
      "Skipping line 1264436: '|' expected after '\"'\n",
      "Skipping line 1265237: '|' expected after '\"'\n",
      "Skipping line 1268270: '|' expected after '\"'\n",
      "Skipping line 1270895: '|' expected after '\"'\n",
      "Skipping line 1274035: '|' expected after '\"'\n",
      "Skipping line 1281818: '|' expected after '\"'\n",
      "Skipping line 1281819: '|' expected after '\"'\n",
      "Skipping line 1304456: '|' expected after '\"'\n",
      "Skipping line 1358722: '|' expected after '\"'\n",
      "Skipping line 1389877: '|' expected after '\"'\n",
      "Skipping line 1391733: '|' expected after '\"'\n",
      "Skipping line 1391924: '|' expected after '\"'\n",
      "Skipping line 1392433: '|' expected after '\"'\n",
      "Skipping line 1392751: '|' expected after '\"'\n",
      "Skipping line 1397736: '|' expected after '\"'\n",
      "Skipping line 1399444: '|' expected after '\"'\n",
      "Skipping line 1419821: '|' expected after '\"'\n",
      "Skipping line 1430773: '|' expected after '\"'\n",
      "Skipping line 1518892: '|' expected after '\"'\n",
      "Skipping line 1518965: '|' expected after '\"'\n",
      "Skipping line 1519014: '|' expected after '\"'\n",
      "Skipping line 1519145: '|' expected after '\"'\n",
      "Skipping line 1519213: '|' expected after '\"'\n",
      "Skipping line 1521057: '|' expected after '\"'\n",
      "Skipping line 1523262: '|' expected after '\"'\n",
      "Skipping line 1524645: '|' expected after '\"'\n",
      "Skipping line 1524896: '|' expected after '\"'\n",
      "Skipping line 1557509: '|' expected after '\"'\n",
      "Skipping line 1591309: '|' expected after '\"'\n",
      "Skipping line 1598365: '|' expected after '\"'\n",
      "Skipping line 1598379: '|' expected after '\"'\n",
      "Skipping line 1620750: '|' expected after '\"'\n",
      "Skipping line 1639449: '|' expected after '\"'\n",
      "Skipping line 1640666: '|' expected after '\"'\n",
      "Skipping line 1641663: '|' expected after '\"'\n",
      "Skipping line 1643213: '|' expected after '\"'\n",
      "Skipping line 1643303: '|' expected after '\"'\n",
      "Skipping line 1647114: '|' expected after '\"'\n",
      "Skipping line 1649600: '|' expected after '\"'\n",
      "Skipping line 1660737: '|' expected after '\"'\n",
      "Skipping line 1669480: '|' expected after '\"'\n",
      "Skipping line 1680464: '|' expected after '\"'\n",
      "Skipping line 1692718: '|' expected after '\"'\n",
      "Skipping line 1711625: '|' expected after '\"'\n",
      "Skipping line 1713716: '|' expected after '\"'\n",
      "Skipping line 1715959: '|' expected after '\"'\n",
      "Skipping line 1717228: '|' expected after '\"'\n",
      "Skipping line 1723225: '|' expected after '\"'\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Skipping line 1735694: field larger than field limit (131072)\n",
      "Skipping line 1739682: '|' expected after '\"'\n",
      "Skipping line 1762421: '|' expected after '\"'\n",
      "Skipping line 1762816: '|' expected after '\"'\n",
      "Skipping line 1764423: '|' expected after '\"'\n",
      "Skipping line 1766600: '|' expected after '\"'\n",
      "Skipping line 1772618: '|' expected after '\"'\n",
      "Skipping line 1772761: '|' expected after '\"'\n",
      "Skipping line 1794883: '|' expected after '\"'\n",
      "Skipping line 1795646: '|' expected after '\"'\n",
      "Skipping line 1804120: '|' expected after '\"'\n",
      "Skipping line 1811722: '|' expected after '\"'\n",
      "Skipping line 1811925: '|' expected after '\"'\n",
      "Skipping line 1842542: '|' expected after '\"'\n",
      "Skipping line 1845548: '|' expected after '\"'\n",
      "Skipping line 1870660: '|' expected after '\"'\n",
      "Skipping line 1876094: '|' expected after '\"'\n",
      "Skipping line 1887701: '|' expected after '\"'\n",
      "Skipping line 1891456: '|' expected after '\"'\n",
      "Skipping line 1895580: '|' expected after '\"'\n",
      "Skipping line 1896799: '|' expected after '\"'\n",
      "Skipping line 1897281: '|' expected after '\"'\n",
      "Skipping line 1917925: '|' expected after '\"'\n",
      "Skipping line 1928437: '|' expected after '\"'\n",
      "Skipping line 1928666: '|' expected after '\"'\n",
      "Skipping line 1972369: '|' expected after '\"'\n",
      "Skipping line 1981520: '|' expected after '\"'\n",
      "Skipping line 1998239: '|' expected after '\"'\n",
      "Skipping line 2010371: '|' expected after '\"'\n",
      "Skipping line 2015015: '|' expected after '\"'\n",
      "Skipping line 2015136: '|' expected after '\"'\n",
      "Skipping line 2017653: '|' expected after '\"'\n",
      "Skipping line 2018003: '|' expected after '\"'\n",
      "Skipping line 2021529: '|' expected after '\"'\n",
      "Skipping line 2021838: '|' expected after '\"'\n",
      "Skipping line 2024061: '|' expected after '\"'\n",
      "Skipping line 2030992: '|' expected after '\"'\n",
      "Skipping line 2043670: '|' expected after '\"'\n",
      "Skipping line 2053877: '|' expected after '\"'\n",
      "Skipping line 2054932: '|' expected after '\"'\n",
      "Skipping line 2106136: '|' expected after '\"'\n",
      "Skipping line 2116760: '|' expected after '\"'\n",
      "Skipping line 2121514: '|' expected after '\"'\n",
      "Skipping line 2139724: '|' expected after '\"'\n",
      "Skipping line 2141035: '|' expected after '\"'\n",
      "Skipping line 2142195: '|' expected after '\"'\n",
      "Skipping line 2143596: '|' expected after '\"'\n",
      "Skipping line 2143597: '|' expected after '\"'\n",
      "Skipping line 2148695: '|' expected after '\"'\n",
      "Skipping line 2156910: '|' expected after '\"'\n",
      "Skipping line 2169622: '|' expected after '\"'\n",
      "Skipping line 2171060: '|' expected after '\"'\n",
      "Skipping line 2179765: '|' expected after '\"'\n",
      "Skipping line 2233957: '|' expected after '\"'\n",
      "Skipping line 2240632: '|' expected after '\"'\n",
      "Skipping line 2250559: '|' expected after '\"'\n",
      "Skipping line 2270223: '|' expected after '\"'\n",
      "Skipping line 2274518: '|' expected after '\"'\n",
      "Skipping line 2275713: '|' expected after '\"'\n",
      "Skipping line 2282734: '|' expected after '\"'\n",
      "Skipping line 2295442: '|' expected after '\"'\n",
      "Skipping line 2305540: '|' expected after '\"'\n",
      "Skipping line 2310735: '|' expected after '\"'\n",
      "Skipping line 2314558: '|' expected after '\"'\n",
      "Skipping line 2317669: '|' expected after '\"'\n",
      "Skipping line 2330413: '|' expected after '\"'\n",
      "Skipping line 2367274: '|' expected after '\"'\n",
      "Skipping line 2394580: '|' expected after '\"'\n",
      "Skipping line 2394668: '|' expected after '\"'\n",
      "Skipping line 2395150: '|' expected after '\"'\n",
      "Skipping line 2396248: '|' expected after '\"'\n",
      "Skipping line 2399463: '|' expected after '\"'\n",
      "Skipping line 2431347: '|' expected after '\"'\n",
      "Skipping line 2439861: '|' expected after '\"'\n",
      "Skipping line 2440327: '|' expected after '\"'\n",
      "Skipping line 2452820: '|' expected after '\"'\n",
      "Skipping line 2471745: '|' expected after '\"'\n",
      "Skipping line 2478199: '|' expected after '\"'\n",
      "Skipping line 2518521: '|' expected after '\"'\n",
      "Skipping line 2522686: '|' expected after '\"'\n",
      "Skipping line 2525431: '|' expected after '\"'\n",
      "Skipping line 2540695: '|' expected after '\"'\n",
      "Skipping line 2542483: '|' expected after '\"'\n",
      "Skipping line 2565333: '|' expected after '\"'\n",
      "Skipping line 2593574: '|' expected after '\"'\n",
      "Skipping line 2600525: '|' expected after '\"'\n",
      "Skipping line 2641711: '|' expected after '\"'\n",
      "Skipping line 2641712: '|' expected after '\"'\n",
      "Skipping line 2643234: '|' expected after '\"'\n",
      "Skipping line 2644440: '|' expected after '\"'\n",
      "Skipping line 2646152: '|' expected after '\"'\n",
      "Skipping line 2649638: '|' expected after '\"'\n",
      "Skipping line 2649639: '|' expected after '\"'\n",
      "Skipping line 2650314: '|' expected after '\"'\n",
      "Skipping line 2651112: '|' expected after '\"'\n",
      "Skipping line 2659263: '|' expected after '\"'\n",
      "Skipping line 2688674: '|' expected after '\"'\n",
      "Skipping line 2690840: '|' expected after '\"'\n",
      "Skipping line 2690841: '|' expected after '\"'\n",
      "Skipping line 2758832: '|' expected after '\"'\n",
      "Skipping line 2766998: '|' expected after '\"'\n",
      "Skipping line 2768472: '|' expected after '\"'\n",
      "Skipping line 2768941: '|' expected after '\"'\n",
      "Skipping line 2769023: '|' expected after '\"'\n",
      "Skipping line 2771806: '|' expected after '\"'\n",
      "Skipping line 2776086: '|' expected after '\"'\n",
      "Skipping line 2776320: '|' expected after '\"'\n",
      "Skipping line 2777370: '|' expected after '\"'\n",
      "Skipping line 2784365: '|' expected after '\"'\n",
      "Skipping line 2816264: '|' expected after '\"'\n",
      "Skipping line 2819736: '|' expected after '\"'\n",
      "Skipping line 2819937: '|' expected after '\"'\n",
      "Skipping line 2845907: '|' expected after '\"'\n",
      "Skipping line 2861153: '|' expected after '\"'\n",
      "Skipping line 2866746: '|' expected after '\"'\n",
      "Skipping line 2869188: '|' expected after '\"'\n",
      "Skipping line 2869514: '|' expected after '\"'\n",
      "Skipping line 2879423: '|' expected after '\"'\n",
      "Skipping line 2880672: '|' expected after '\"'\n",
      "Skipping line 2901613: '|' expected after '\"'\n",
      "Skipping line 2901631: '|' expected after '\"'\n",
      "Skipping line 2921015: '|' expected after '\"'\n",
      "Skipping line 2934182: '|' expected after '\"'\n",
      "Skipping line 2934706: '|' expected after '\"'\n",
      "Skipping line 2935292: '|' expected after '\"'\n",
      "Skipping line 2941615: '|' expected after '\"'\n",
      "Skipping line 2945744: '|' expected after '\"'\n",
      "Skipping line 2963779: '|' expected after '\"'\n",
      "Skipping line 2968405: '|' expected after '\"'\n",
      "Skipping line 2984334: '|' expected after '\"'\n",
      "Skipping line 3010737: '|' expected after '\"'\n",
      "Skipping line 3015334: '|' expected after '\"'\n",
      "Skipping line 3015489: '|' expected after '\"'\n",
      "Skipping line 3015490: '|' expected after '\"'\n",
      "Skipping line 3017095: '|' expected after '\"'\n",
      "Skipping line 3017797: '|' expected after '\"'\n",
      "Skipping line 3017889: '|' expected after '\"'\n",
      "Skipping line 3019116: '|' expected after '\"'\n",
      "Skipping line 3021121: '|' expected after '\"'\n",
      "Skipping line 3021722: '|' expected after '\"'\n",
      "Skipping line 3024637: '|' expected after '\"'\n",
      "Skipping line 3032663: '|' expected after '\"'\n",
      "Skipping line 3032665: '|' expected after '\"'\n",
      "Skipping line 3060596: '|' expected after '\"'\n",
      "Skipping line 3094740: '|' expected after '\"'\n",
      "Skipping line 3096326: '|' expected after '\"'\n",
      "Skipping line 3145146: '|' expected after '\"'\n",
      "Skipping line 3145213: '|' expected after '\"'\n",
      "Skipping line 3150484: '|' expected after '\"'\n",
      "Skipping line 3150687: '|' expected after '\"'\n",
      "Skipping line 3181707: '|' expected after '\"'\n",
      "Skipping line 3182320: '|' expected after '\"'\n",
      "Skipping line 3190792: '|' expected after '\"'\n",
      "Skipping line 3193944: '|' expected after '\"'\n",
      "Skipping line 3220375: '|' expected after '\"'\n",
      "Skipping line 3223081: '|' expected after '\"'\n",
      "Skipping line 3225621: '|' expected after '\"'\n",
      "Skipping line 3244046: '|' expected after '\"'\n",
      "Skipping line 3267113: '|' expected after '\"'\n",
      "Skipping line 3268419: '|' expected after '\"'\n",
      "Skipping line 3272851: '|' expected after '\"'\n",
      "Skipping line 3274850: '|' expected after '\"'\n",
      "Skipping line 3276075: '|' expected after '\"'\n",
      "Skipping line 3277043: '|' expected after '\"'\n",
      "Skipping line 3297363: '|' expected after '\"'\n",
      "Skipping line 3308208: '|' expected after '\"'\n",
      "Skipping line 3338566: '|' expected after '\"'\n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "3373077\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>music_id</th>\n",
       "      <th>title</th>\n",
       "      <th>artist_id</th>\n",
       "      <th>album</th>\n",
       "      <th>is_paid</th>\n",
       "      <th>comment</th>\n",
       "      <th>comment_cnt</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>10444549.0</td>\n",
       "      <td>Somewhere Before</td>\n",
       "      <td>NaN</td>\n",
       "      <td>As Long As You're Living Yours: The Music of K...</td>\n",
       "      <td>1.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>10444405.0</td>\n",
       "      <td>Simple Gifts</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Sleep Baby</td>\n",
       "      <td>1.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>10444351.0</td>\n",
       "      <td>Only Pretty, What A Pity</td>\n",
       "      <td>277775.0</td>\n",
       "      <td>Everything Playing</td>\n",
       "      <td>1.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>10444288.0</td>\n",
       "      <td>The Bergen</td>\n",
       "      <td>303217.0</td>\n",
       "      <td>Threads Of Time</td>\n",
       "      <td>1.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>10444246.0</td>\n",
       "      <td>I Shot The Sheriff</td>\n",
       "      <td>NaN</td>\n",
       "      <td>The Complete Show, Oakland Auditorium, Ca. Nov...</td>\n",
       "      <td>1.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     music_id                     title  artist_id  \\\n",
       "0  10444549.0          Somewhere Before        NaN   \n",
       "1  10444405.0              Simple Gifts        NaN   \n",
       "2  10444351.0  Only Pretty, What A Pity   277775.0   \n",
       "3  10444288.0                The Bergen   303217.0   \n",
       "4  10444246.0        I Shot The Sheriff        NaN   \n",
       "\n",
       "                                               album  is_paid comment  \\\n",
       "0  As Long As You're Living Yours: The Music of K...      1.0     NaN   \n",
       "1                                         Sleep Baby      1.0     NaN   \n",
       "2                                 Everything Playing      1.0     NaN   \n",
       "3                                    Threads Of Time      1.0     NaN   \n",
       "4  The Complete Show, Oakland Auditorium, Ca. Nov...      1.0     NaN   \n",
       "\n",
       "   comment_cnt  \n",
       "0            0  \n",
       "1            0  \n",
       "2            0  \n",
       "3            0  \n",
       "4            0  "
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#读取歌曲信息表music_info：由于pandas读取有错误，忽略错误行\n",
    "music_info_df = pd.read_csv('3_music_info.csv', sep='|',error_bad_lines=False,engine='python')\n",
    "print(len(music_info_df))\n",
    "music_info_df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "5ffdb19a",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "303423\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>artist_id</th>\n",
       "      <th>artist</th>\n",
       "      <th>style</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>1</td>\n",
       "      <td>Sam Feldt、Halsey</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>王凯</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3</td>\n",
       "      <td>The Mary Onette</td>\n",
       "      <td>摇滚</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>4</td>\n",
       "      <td>OXANA</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>5</td>\n",
       "      <td>Comiccon</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   artist_id            artist style\n",
       "0          1  Sam Feldt、Halsey   NaN\n",
       "1          2                王凯   NaN\n",
       "2          3   The Mary Onette    摇滚\n",
       "3          4             OXANA   NaN\n",
       "4          5          Comiccon   NaN"
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#读取歌手信息表artist_info\n",
    "artist_info_df = pd.read_csv('5_artist_info.csv', sep='|')\n",
    "print(len(artist_info_df))\n",
    "artist_info_df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "fda6fbb7",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "66"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#垃圾回收，减少内存占用\n",
    "#https://www.cnblogs.com/vamei/p/3232088.html\n",
    "import gc\n",
    "gc.collect()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "01e84d40",
   "metadata": {},
   "source": [
    "## 1.3.用户行为序列处理"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "id": "d94075ee",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "device: 100%|██████████| 200000/200000 [00:02<00:00, 75731.58it/s]\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>device_id</th>\n",
       "      <th>days</th>\n",
       "      <th>days_list</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>194045574</td>\n",
       "      <td>4#15#22#34#35#36#38#40#41#42#43#44</td>\n",
       "      <td>[4, 15, 22, 34, 35, 36, 38, 40, 41, 42, 43, 44]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>194048640</td>\n",
       "      <td>1#6#10#11#12#14#15#18#20#21#22#23#27#28#29#34#...</td>\n",
       "      <td>[1, 6, 10, 11, 12, 14, 15, 18, 20, 21, 22, 23,...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>194050284</td>\n",
       "      <td>1#3#4#6#38#39#41#42#50#53#54#55#57</td>\n",
       "      <td>[1, 3, 4, 6, 38, 39, 41, 42, 50, 53, 54, 55, 57]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>194052024</td>\n",
       "      <td>10#19#23#33#38#41#42#43#44#45#46#51#60</td>\n",
       "      <td>[10, 19, 23, 33, 38, 41, 42, 43, 44, 45, 46, 5...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>194053501</td>\n",
       "      <td>1#3#4#5#6#7#8#12#13#15#16#17#19#21#23#25#27#29...</td>\n",
       "      <td>[1, 3, 4, 5, 6, 7, 8, 12, 13, 15, 16, 17, 19, ...</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   device_id                                               days  \\\n",
       "0  194045574                 4#15#22#34#35#36#38#40#41#42#43#44   \n",
       "1  194048640  1#6#10#11#12#14#15#18#20#21#22#23#27#28#29#34#...   \n",
       "2  194050284                 1#3#4#6#38#39#41#42#50#53#54#55#57   \n",
       "3  194052024             10#19#23#33#38#41#42#43#44#45#46#51#60   \n",
       "4  194053501  1#3#4#5#6#7#8#12#13#15#16#17#19#21#23#25#27#29...   \n",
       "\n",
       "                                           days_list  \n",
       "0    [4, 15, 22, 34, 35, 36, 38, 40, 41, 42, 43, 44]  \n",
       "1  [1, 6, 10, 11, 12, 14, 15, 18, 20, 21, 22, 23,...  \n",
       "2   [1, 3, 4, 6, 38, 39, 41, 42, 50, 53, 54, 55, 57]  \n",
       "3  [10, 19, 23, 33, 38, 41, 42, 43, 44, 45, 46, 5...  \n",
       "4  [1, 3, 4, 5, 6, 7, 8, 12, 13, 15, 16, 17, 19, ...  "
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#重置索引避免重复\n",
    "device_active_df = device_active_df.reset_index(drop = True)\n",
    "\n",
    "#包tqdm是用来对可迭代对象执行时生成一个进度条用以监视程序运行过程\n",
    "from tqdm import tqdm\n",
    "#设备活跃表device_active日期处理\n",
    "tqdm.pandas(desc='device')\n",
    "device_active_df['days_list'] = device_active_df['days'].progress_apply(lambda x:[int(y) for y in x.split(\"#\")])\n",
    "device_active_df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "18f29ca9",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>device_id</th>\n",
       "      <th>days</th>\n",
       "      <th>days_list</th>\n",
       "      <th>days_len</th>\n",
       "      <th>days_max</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>194045574</td>\n",
       "      <td>4#15#22#34#35#36#38#40#41#42#43#44</td>\n",
       "      <td>[4, 15, 22, 34, 35, 36, 38, 40, 41, 42, 43, 44]</td>\n",
       "      <td>12</td>\n",
       "      <td>44</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>194048640</td>\n",
       "      <td>1#6#10#11#12#14#15#18#20#21#22#23#27#28#29#34#...</td>\n",
       "      <td>[1, 6, 10, 11, 12, 14, 15, 18, 20, 21, 22, 23,...</td>\n",
       "      <td>25</td>\n",
       "      <td>60</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>194050284</td>\n",
       "      <td>1#3#4#6#38#39#41#42#50#53#54#55#57</td>\n",
       "      <td>[1, 3, 4, 6, 38, 39, 41, 42, 50, 53, 54, 55, 57]</td>\n",
       "      <td>13</td>\n",
       "      <td>57</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>194052024</td>\n",
       "      <td>10#19#23#33#38#41#42#43#44#45#46#51#60</td>\n",
       "      <td>[10, 19, 23, 33, 38, 41, 42, 43, 44, 45, 46, 5...</td>\n",
       "      <td>13</td>\n",
       "      <td>60</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>194053501</td>\n",
       "      <td>1#3#4#5#6#7#8#12#13#15#16#17#19#21#23#25#27#29...</td>\n",
       "      <td>[1, 3, 4, 5, 6, 7, 8, 12, 13, 15, 16, 17, 19, ...</td>\n",
       "      <td>37</td>\n",
       "      <td>60</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   device_id                                               days  \\\n",
       "0  194045574                 4#15#22#34#35#36#38#40#41#42#43#44   \n",
       "1  194048640  1#6#10#11#12#14#15#18#20#21#22#23#27#28#29#34#...   \n",
       "2  194050284                 1#3#4#6#38#39#41#42#50#53#54#55#57   \n",
       "3  194052024             10#19#23#33#38#41#42#43#44#45#46#51#60   \n",
       "4  194053501  1#3#4#5#6#7#8#12#13#15#16#17#19#21#23#25#27#29...   \n",
       "\n",
       "                                           days_list  days_len  days_max  \n",
       "0    [4, 15, 22, 34, 35, 36, 38, 40, 41, 42, 43, 44]        12        44  \n",
       "1  [1, 6, 10, 11, 12, 14, 15, 18, 20, 21, 22, 23,...        25        60  \n",
       "2   [1, 3, 4, 6, 38, 39, 41, 42, 50, 53, 54, 55, 57]        13        57  \n",
       "3  [10, 19, 23, 33, 38, 41, 42, 43, 44, 45, 46, 5...        13        60  \n",
       "4  [1, 3, 4, 5, 6, 7, 8, 12, 13, 15, 16, 17, 19, ...        37        60  "
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#提取设备日期标签：活跃天数,最后活跃日期\n",
    "device_active_df['days_len']=device_active_df['days_list'].map(len)\n",
    "device_active_df['days_max']=device_active_df['days_list'].map(max)\n",
    "device_active_df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "087a3803",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "user_behavior: 100%|██████████| 3307124/3307124 [00:43<00:00, 76351.59it/s]\n",
      "user_behavior: 100%|██████████| 3307124/3307124 [01:01<00:00, 53710.13it/s]\n",
      "user_behavior: 100%|██████████| 3307124/3307124 [01:38<00:00, 33714.63it/s]\n"
     ]
    }
   ],
   "source": [
    "#用户行为数据序列化:注意na和null替换\n",
    "user_behavior_df.fillna(value='0',inplace=True)\n",
    "tqdm.pandas(desc='user_behavior')\n",
    "user_behavior_df['pages_list'] = user_behavior_df['pages'].progress_apply(lambda x:[int(y) for y in x.replace('null','0').split(\"#\")])\n",
    "user_behavior_df['music_ids_list'] = user_behavior_df['music_ids'].progress_apply(lambda x:[int(y) for y in x.replace('null','0').split(\"#\")])\n",
    "user_behavior_df['actions_list'] = user_behavior_df['actions'].progress_apply(lambda x:[int(y) for y in x.replace('null','0').split(\"#\")])\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "136690ec",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>device_id</th>\n",
       "      <th>day</th>\n",
       "      <th>pages</th>\n",
       "      <th>music_ids</th>\n",
       "      <th>actions</th>\n",
       "      <th>channel</th>\n",
       "      <th>pages_list</th>\n",
       "      <th>music_ids_list</th>\n",
       "      <th>actions_list</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>203726210</td>\n",
       "      <td>8</td>\n",
       "      <td>null#null#null</td>\n",
       "      <td>null#null#null</td>\n",
       "      <td>1#1#1</td>\n",
       "      <td>8.0</td>\n",
       "      <td>[0, 0, 0]</td>\n",
       "      <td>[0, 0, 0]</td>\n",
       "      <td>[1, 1, 1]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>203718406</td>\n",
       "      <td>46</td>\n",
       "      <td>null#32#32#16#32#32#32#null#32#16#16#16#16#32#...</td>\n",
       "      <td>5017116#4973316#4602314#4602314#4602314#460231...</td>\n",
       "      <td>3#1#1#1#1#1#1#7#1#2#2#4#4#1#1#8#1#1#1#8#1</td>\n",
       "      <td>5.0</td>\n",
       "      <td>[0, 32, 32, 16, 32, 32, 32, 0, 32, 16, 16, 16,...</td>\n",
       "      <td>[5017116, 4973316, 4602314, 4602314, 4602314, ...</td>\n",
       "      <td>[3, 1, 1, 1, 1, 1, 1, 7, 1, 2, 2, 4, 4, 1, 1, ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>203695489</td>\n",
       "      <td>36</td>\n",
       "      <td>16#16</td>\n",
       "      <td>4632924#4632924</td>\n",
       "      <td>1#1</td>\n",
       "      <td>5.0</td>\n",
       "      <td>[16, 16]</td>\n",
       "      <td>[4632924, 4632924]</td>\n",
       "      <td>[1, 1]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>203663610</td>\n",
       "      <td>26</td>\n",
       "      <td>29#16#29#29#29#29#null#29#29#29#29#29#29#29#29...</td>\n",
       "      <td>10203279#8598481#4563053#4184994#4872587#10128...</td>\n",
       "      <td>1#1#1#1#1#1#7#1#1#1#1#1#1#1#1#1#1#1#8#1#1#1#1#...</td>\n",
       "      <td>5.0</td>\n",
       "      <td>[29, 16, 29, 29, 29, 29, 0, 29, 29, 29, 29, 29...</td>\n",
       "      <td>[10203279, 8598481, 4563053, 4184994, 4872587,...</td>\n",
       "      <td>[1, 1, 1, 1, 1, 1, 7, 1, 1, 1, 1, 1, 1, 1, 1, ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>203649792</td>\n",
       "      <td>36</td>\n",
       "      <td>16</td>\n",
       "      <td>9048154</td>\n",
       "      <td>1</td>\n",
       "      <td>5.0</td>\n",
       "      <td>[16]</td>\n",
       "      <td>[9048154]</td>\n",
       "      <td>[1]</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   device_id  day                                              pages  \\\n",
       "0  203726210    8                                     null#null#null   \n",
       "1  203718406   46  null#32#32#16#32#32#32#null#32#16#16#16#16#32#...   \n",
       "2  203695489   36                                              16#16   \n",
       "3  203663610   26  29#16#29#29#29#29#null#29#29#29#29#29#29#29#29...   \n",
       "4  203649792   36                                                 16   \n",
       "\n",
       "                                           music_ids  \\\n",
       "0                                     null#null#null   \n",
       "1  5017116#4973316#4602314#4602314#4602314#460231...   \n",
       "2                                    4632924#4632924   \n",
       "3  10203279#8598481#4563053#4184994#4872587#10128...   \n",
       "4                                            9048154   \n",
       "\n",
       "                                             actions channel  \\\n",
       "0                                              1#1#1     8.0   \n",
       "1          3#1#1#1#1#1#1#7#1#2#2#4#4#1#1#8#1#1#1#8#1     5.0   \n",
       "2                                                1#1     5.0   \n",
       "3  1#1#1#1#1#1#7#1#1#1#1#1#1#1#1#1#1#1#8#1#1#1#1#...     5.0   \n",
       "4                                                  1     5.0   \n",
       "\n",
       "                                          pages_list  \\\n",
       "0                                          [0, 0, 0]   \n",
       "1  [0, 32, 32, 16, 32, 32, 32, 0, 32, 16, 16, 16,...   \n",
       "2                                           [16, 16]   \n",
       "3  [29, 16, 29, 29, 29, 29, 0, 29, 29, 29, 29, 29...   \n",
       "4                                               [16]   \n",
       "\n",
       "                                      music_ids_list  \\\n",
       "0                                          [0, 0, 0]   \n",
       "1  [5017116, 4973316, 4602314, 4602314, 4602314, ...   \n",
       "2                                 [4632924, 4632924]   \n",
       "3  [10203279, 8598481, 4563053, 4184994, 4872587,...   \n",
       "4                                          [9048154]   \n",
       "\n",
       "                                        actions_list  \n",
       "0                                          [1, 1, 1]  \n",
       "1  [3, 1, 1, 1, 1, 1, 1, 7, 1, 2, 2, 4, 4, 1, 1, ...  \n",
       "2                                             [1, 1]  \n",
       "3  [1, 1, 1, 1, 1, 1, 7, 1, 1, 1, 1, 1, 1, 1, 1, ...  \n",
       "4                                                [1]  "
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "user_behavior_df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "faaac70c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>device_id</th>\n",
       "      <th>day</th>\n",
       "      <th>pages</th>\n",
       "      <th>music_ids</th>\n",
       "      <th>actions</th>\n",
       "      <th>channel</th>\n",
       "      <th>pages_list</th>\n",
       "      <th>music_ids_list</th>\n",
       "      <th>actions_list</th>\n",
       "      <th>pages_len</th>\n",
       "      <th>pages_max</th>\n",
       "      <th>pages_unique</th>\n",
       "      <th>music_ids_len</th>\n",
       "      <th>music_ids_max</th>\n",
       "      <th>music_ids_unique</th>\n",
       "      <th>actions_len</th>\n",
       "      <th>actions_max</th>\n",
       "      <th>actions_unique</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>203726210</td>\n",
       "      <td>8</td>\n",
       "      <td>null#null#null</td>\n",
       "      <td>null#null#null</td>\n",
       "      <td>1#1#1</td>\n",
       "      <td>8.0</td>\n",
       "      <td>[0, 0, 0]</td>\n",
       "      <td>[0, 0, 0]</td>\n",
       "      <td>[1, 1, 1]</td>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>203718406</td>\n",
       "      <td>46</td>\n",
       "      <td>null#32#32#16#32#32#32#null#32#16#16#16#16#32#...</td>\n",
       "      <td>5017116#4973316#4602314#4602314#4602314#460231...</td>\n",
       "      <td>3#1#1#1#1#1#1#7#1#2#2#4#4#1#1#8#1#1#1#8#1</td>\n",
       "      <td>5.0</td>\n",
       "      <td>[0, 32, 32, 16, 32, 32, 32, 0, 32, 16, 16, 16,...</td>\n",
       "      <td>[5017116, 4973316, 4602314, 4602314, 4602314, ...</td>\n",
       "      <td>[3, 1, 1, 1, 1, 1, 1, 7, 1, 2, 2, 4, 4, 1, 1, ...</td>\n",
       "      <td>21</td>\n",
       "      <td>32</td>\n",
       "      <td>3</td>\n",
       "      <td>21</td>\n",
       "      <td>10235775</td>\n",
       "      <td>9</td>\n",
       "      <td>21</td>\n",
       "      <td>8</td>\n",
       "      <td>6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>203695489</td>\n",
       "      <td>36</td>\n",
       "      <td>16#16</td>\n",
       "      <td>4632924#4632924</td>\n",
       "      <td>1#1</td>\n",
       "      <td>5.0</td>\n",
       "      <td>[16, 16]</td>\n",
       "      <td>[4632924, 4632924]</td>\n",
       "      <td>[1, 1]</td>\n",
       "      <td>2</td>\n",
       "      <td>16</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>4632924</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>203663610</td>\n",
       "      <td>26</td>\n",
       "      <td>29#16#29#29#29#29#null#29#29#29#29#29#29#29#29...</td>\n",
       "      <td>10203279#8598481#4563053#4184994#4872587#10128...</td>\n",
       "      <td>1#1#1#1#1#1#7#1#1#1#1#1#1#1#1#1#1#1#8#1#1#1#1#...</td>\n",
       "      <td>5.0</td>\n",
       "      <td>[29, 16, 29, 29, 29, 29, 0, 29, 29, 29, 29, 29...</td>\n",
       "      <td>[10203279, 8598481, 4563053, 4184994, 4872587,...</td>\n",
       "      <td>[1, 1, 1, 1, 1, 1, 7, 1, 1, 1, 1, 1, 1, 1, 1, ...</td>\n",
       "      <td>26</td>\n",
       "      <td>29</td>\n",
       "      <td>3</td>\n",
       "      <td>26</td>\n",
       "      <td>10203279</td>\n",
       "      <td>25</td>\n",
       "      <td>26</td>\n",
       "      <td>8</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>203649792</td>\n",
       "      <td>36</td>\n",
       "      <td>16</td>\n",
       "      <td>9048154</td>\n",
       "      <td>1</td>\n",
       "      <td>5.0</td>\n",
       "      <td>[16]</td>\n",
       "      <td>[9048154]</td>\n",
       "      <td>[1]</td>\n",
       "      <td>1</td>\n",
       "      <td>16</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>9048154</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   device_id  day                                              pages  \\\n",
       "0  203726210    8                                     null#null#null   \n",
       "1  203718406   46  null#32#32#16#32#32#32#null#32#16#16#16#16#32#...   \n",
       "2  203695489   36                                              16#16   \n",
       "3  203663610   26  29#16#29#29#29#29#null#29#29#29#29#29#29#29#29...   \n",
       "4  203649792   36                                                 16   \n",
       "\n",
       "                                           music_ids  \\\n",
       "0                                     null#null#null   \n",
       "1  5017116#4973316#4602314#4602314#4602314#460231...   \n",
       "2                                    4632924#4632924   \n",
       "3  10203279#8598481#4563053#4184994#4872587#10128...   \n",
       "4                                            9048154   \n",
       "\n",
       "                                             actions channel  \\\n",
       "0                                              1#1#1     8.0   \n",
       "1          3#1#1#1#1#1#1#7#1#2#2#4#4#1#1#8#1#1#1#8#1     5.0   \n",
       "2                                                1#1     5.0   \n",
       "3  1#1#1#1#1#1#7#1#1#1#1#1#1#1#1#1#1#1#8#1#1#1#1#...     5.0   \n",
       "4                                                  1     5.0   \n",
       "\n",
       "                                          pages_list  \\\n",
       "0                                          [0, 0, 0]   \n",
       "1  [0, 32, 32, 16, 32, 32, 32, 0, 32, 16, 16, 16,...   \n",
       "2                                           [16, 16]   \n",
       "3  [29, 16, 29, 29, 29, 29, 0, 29, 29, 29, 29, 29...   \n",
       "4                                               [16]   \n",
       "\n",
       "                                      music_ids_list  \\\n",
       "0                                          [0, 0, 0]   \n",
       "1  [5017116, 4973316, 4602314, 4602314, 4602314, ...   \n",
       "2                                 [4632924, 4632924]   \n",
       "3  [10203279, 8598481, 4563053, 4184994, 4872587,...   \n",
       "4                                          [9048154]   \n",
       "\n",
       "                                        actions_list  pages_len  pages_max  \\\n",
       "0                                          [1, 1, 1]          3          0   \n",
       "1  [3, 1, 1, 1, 1, 1, 1, 7, 1, 2, 2, 4, 4, 1, 1, ...         21         32   \n",
       "2                                             [1, 1]          2         16   \n",
       "3  [1, 1, 1, 1, 1, 1, 7, 1, 1, 1, 1, 1, 1, 1, 1, ...         26         29   \n",
       "4                                                [1]          1         16   \n",
       "\n",
       "   pages_unique  music_ids_len  music_ids_max  music_ids_unique  actions_len  \\\n",
       "0             1              3              0                 1            3   \n",
       "1             3             21       10235775                 9           21   \n",
       "2             1              2        4632924                 1            2   \n",
       "3             3             26       10203279                25           26   \n",
       "4             1              1        9048154                 1            1   \n",
       "\n",
       "   actions_max  actions_unique  \n",
       "0            1               1  \n",
       "1            8               6  \n",
       "2            1               1  \n",
       "3            8               3  \n",
       "4            1               1  "
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#提取特征\n",
    "user_behavior_df['pages_len']=user_behavior_df['pages_list'].map(len)\n",
    "user_behavior_df['pages_max']=user_behavior_df['pages_list'].map(max)\n",
    "user_behavior_df['pages_unique']=user_behavior_df['pages_list'].map(lambda x:len(set(x)))\n",
    "user_behavior_df['music_ids_len']=user_behavior_df['music_ids_list'].map(len)\n",
    "user_behavior_df['music_ids_max']=user_behavior_df['music_ids_list'].map(max)\n",
    "user_behavior_df['music_ids_unique']=user_behavior_df['music_ids_list'].map(lambda x:len(set(x)))\n",
    "user_behavior_df['actions_len']=user_behavior_df['actions_list'].map(len)\n",
    "user_behavior_df['actions_max']=user_behavior_df['actions_list'].map(max)\n",
    "user_behavior_df['actions_unique']=user_behavior_df['actions_list'].map(lambda x:len(set(x)))\n",
    "user_behavior_df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "99fc0c8b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>device_id</th>\n",
       "      <th>day</th>\n",
       "      <th>channel</th>\n",
       "      <th>pages_list</th>\n",
       "      <th>music_ids_list</th>\n",
       "      <th>actions_list</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2452</td>\n",
       "      <td>4</td>\n",
       "      <td>5.0</td>\n",
       "      <td>[16, 16, 16, 16, 16, 16, 18, 16, 16, 16, 16, 1...</td>\n",
       "      <td>[9266462, 10274802, 5284244, 7887489, 6904175,...</td>\n",
       "      <td>[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>7181</td>\n",
       "      <td>1</td>\n",
       "      <td>5.0</td>\n",
       "      <td>[32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 3...</td>\n",
       "      <td>[1977322, 1977322, 1977322, 1977322, 1977322, ...</td>\n",
       "      <td>[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>7181</td>\n",
       "      <td>16</td>\n",
       "      <td>5.0</td>\n",
       "      <td>[32]</td>\n",
       "      <td>[9111072]</td>\n",
       "      <td>[1]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>8685</td>\n",
       "      <td>2</td>\n",
       "      <td>5.0</td>\n",
       "      <td>[32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 3...</td>\n",
       "      <td>[1415848, 1415848, 1415848, 1415848, 1415848, ...</td>\n",
       "      <td>[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>8685</td>\n",
       "      <td>3</td>\n",
       "      <td>5.0</td>\n",
       "      <td>[32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 3...</td>\n",
       "      <td>[1415848, 1415848, 1415848, 1415848, 1415848, ...</td>\n",
       "      <td>[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ...</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   device_id  day channel                                         pages_list  \\\n",
       "0       2452    4     5.0  [16, 16, 16, 16, 16, 16, 18, 16, 16, 16, 16, 1...   \n",
       "1       7181    1     5.0  [32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 3...   \n",
       "2       7181   16     5.0                                               [32]   \n",
       "3       8685    2     5.0  [32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 3...   \n",
       "4       8685    3     5.0  [32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 3...   \n",
       "\n",
       "                                      music_ids_list  \\\n",
       "0  [9266462, 10274802, 5284244, 7887489, 6904175,...   \n",
       "1  [1977322, 1977322, 1977322, 1977322, 1977322, ...   \n",
       "2                                          [9111072]   \n",
       "3  [1415848, 1415848, 1415848, 1415848, 1415848, ...   \n",
       "4  [1415848, 1415848, 1415848, 1415848, 1415848, ...   \n",
       "\n",
       "                                        actions_list  \n",
       "0  [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ...  \n",
       "1         [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]  \n",
       "2                                                [1]  \n",
       "3            [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]  \n",
       "4  [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ...  "
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#选取30日之前的信息\n",
    "temp_df=df =user_behavior_df.loc[user_behavior_df['day']<=30,['device_id', 'day','channel',\n",
    "       'pages_list', 'music_ids_list', 'actions_list']].sort_values(by=['device_id', 'day'],\n",
    "                                                                                     ascending=[True,True]) \n",
    "temp_df=temp_df.reset_index(drop = True)\n",
    "temp_df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "id": "334b304e",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>device_id</th>\n",
       "      <th>day</th>\n",
       "      <th>channel</th>\n",
       "      <th>pages_list</th>\n",
       "      <th>music_ids_list</th>\n",
       "      <th>actions_list</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2452</td>\n",
       "      <td>[4]</td>\n",
       "      <td>[5.0]</td>\n",
       "      <td>[[16, 16, 16, 16, 16, 16, 18, 16, 16, 16, 16, ...</td>\n",
       "      <td>[[9266462, 10274802, 5284244, 7887489, 6904175...</td>\n",
       "      <td>[[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>7181</td>\n",
       "      <td>[1, 16]</td>\n",
       "      <td>[5.0, 5.0]</td>\n",
       "      <td>[[32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, ...</td>\n",
       "      <td>[[1977322, 1977322, 1977322, 1977322, 1977322,...</td>\n",
       "      <td>[[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1]]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>8685</td>\n",
       "      <td>[2, 3, 5, 6, 8, 9, 11, 12, 13, 14, 19, 22, 23,...</td>\n",
       "      <td>[5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, ...</td>\n",
       "      <td>[[32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, ...</td>\n",
       "      <td>[[1415848, 1415848, 1415848, 1415848, 1415848,...</td>\n",
       "      <td>[[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>9219</td>\n",
       "      <td>[1, 2, 7, 9, 10, 20, 24, 25, 26, 30]</td>\n",
       "      <td>[2.0, 2.0, 2.0, 2.0, 2.0, 5.0, 2.0, 2.0, 2.0, ...</td>\n",
       "      <td>[[28], [28, 28], [28, 28, 28, 28], [28, 28, 28...</td>\n",
       "      <td>[[9651688], [9651688, 9651688], [1995380, 9651...</td>\n",
       "      <td>[[1], [1, 1], [1, 1, 1, 1], [1, 1, 1], [1, 1],...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>9529</td>\n",
       "      <td>[1, 8, 23, 25, 26, 27, 29]</td>\n",
       "      <td>[0, 0, 0, 0, 0, 0, 0]</td>\n",
       "      <td>[[16], [16], [16, 16], [16, 16], [16, 16], [16...</td>\n",
       "      <td>[[1136194], [1136194], [1136194, 1136194], [11...</td>\n",
       "      <td>[[1], [1], [1, 1], [1, 1], [1, 1], [1], [1, 1]]</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   device_id                                                day  \\\n",
       "0       2452                                                [4]   \n",
       "1       7181                                            [1, 16]   \n",
       "2       8685  [2, 3, 5, 6, 8, 9, 11, 12, 13, 14, 19, 22, 23,...   \n",
       "3       9219               [1, 2, 7, 9, 10, 20, 24, 25, 26, 30]   \n",
       "4       9529                         [1, 8, 23, 25, 26, 27, 29]   \n",
       "\n",
       "                                             channel  \\\n",
       "0                                              [5.0]   \n",
       "1                                         [5.0, 5.0]   \n",
       "2  [5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, ...   \n",
       "3  [2.0, 2.0, 2.0, 2.0, 2.0, 5.0, 2.0, 2.0, 2.0, ...   \n",
       "4                              [0, 0, 0, 0, 0, 0, 0]   \n",
       "\n",
       "                                          pages_list  \\\n",
       "0  [[16, 16, 16, 16, 16, 16, 18, 16, 16, 16, 16, ...   \n",
       "1  [[32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, ...   \n",
       "2  [[32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, ...   \n",
       "3  [[28], [28, 28], [28, 28, 28, 28], [28, 28, 28...   \n",
       "4  [[16], [16], [16, 16], [16, 16], [16, 16], [16...   \n",
       "\n",
       "                                      music_ids_list  \\\n",
       "0  [[9266462, 10274802, 5284244, 7887489, 6904175...   \n",
       "1  [[1977322, 1977322, 1977322, 1977322, 1977322,...   \n",
       "2  [[1415848, 1415848, 1415848, 1415848, 1415848,...   \n",
       "3  [[9651688], [9651688, 9651688], [1995380, 9651...   \n",
       "4  [[1136194], [1136194], [1136194, 1136194], [11...   \n",
       "\n",
       "                                        actions_list  \n",
       "0  [[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,...  \n",
       "1  [[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1]]  \n",
       "2  [[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], [1, ...  \n",
       "3  [[1], [1, 1], [1, 1, 1, 1], [1, 1, 1], [1, 1],...  \n",
       "4    [[1], [1], [1, 1], [1, 1], [1, 1], [1], [1, 1]]  "
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#指标序列化\n",
    "user_behavior_seq_df=temp_df.groupby(['device_id'],as_index=False).agg(lambda x: list(x))\n",
    "user_behavior_seq_df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "022e0d9a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>device_id</th>\n",
       "      <th>day</th>\n",
       "      <th>channel</th>\n",
       "      <th>pages_seq</th>\n",
       "      <th>music_ids_seq</th>\n",
       "      <th>actions_seq</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2452</td>\n",
       "      <td>[4]</td>\n",
       "      <td>[5.0]</td>\n",
       "      <td>[16, 16, 16, 16, 16, 16, 18, 16, 16, 16, 16, 1...</td>\n",
       "      <td>[9266462, 10274802, 5284244, 7887489, 6904175,...</td>\n",
       "      <td>[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>7181</td>\n",
       "      <td>[1, 16]</td>\n",
       "      <td>[5.0, 5.0]</td>\n",
       "      <td>[32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 3...</td>\n",
       "      <td>[1977322, 1977322, 1977322, 1977322, 1977322, ...</td>\n",
       "      <td>[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>8685</td>\n",
       "      <td>[2, 3, 5, 6, 8, 9, 11, 12, 13, 14, 19, 22, 23,...</td>\n",
       "      <td>[5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, ...</td>\n",
       "      <td>[32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 3...</td>\n",
       "      <td>[1415848, 1415848, 1415848, 1415848, 1415848, ...</td>\n",
       "      <td>[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>9219</td>\n",
       "      <td>[1, 2, 7, 9, 10, 20, 24, 25, 26, 30]</td>\n",
       "      <td>[2.0, 2.0, 2.0, 2.0, 2.0, 5.0, 2.0, 2.0, 2.0, ...</td>\n",
       "      <td>[28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 2...</td>\n",
       "      <td>[9651688, 9651688, 9651688, 1995380, 9651688, ...</td>\n",
       "      <td>[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>9529</td>\n",
       "      <td>[1, 8, 23, 25, 26, 27, 29]</td>\n",
       "      <td>[0, 0, 0, 0, 0, 0, 0]</td>\n",
       "      <td>[16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16]</td>\n",
       "      <td>[1136194, 1136194, 1136194, 1136194, 1136194, ...</td>\n",
       "      <td>[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   device_id                                                day  \\\n",
       "0       2452                                                [4]   \n",
       "1       7181                                            [1, 16]   \n",
       "2       8685  [2, 3, 5, 6, 8, 9, 11, 12, 13, 14, 19, 22, 23,...   \n",
       "3       9219               [1, 2, 7, 9, 10, 20, 24, 25, 26, 30]   \n",
       "4       9529                         [1, 8, 23, 25, 26, 27, 29]   \n",
       "\n",
       "                                             channel  \\\n",
       "0                                              [5.0]   \n",
       "1                                         [5.0, 5.0]   \n",
       "2  [5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, ...   \n",
       "3  [2.0, 2.0, 2.0, 2.0, 2.0, 5.0, 2.0, 2.0, 2.0, ...   \n",
       "4                              [0, 0, 0, 0, 0, 0, 0]   \n",
       "\n",
       "                                           pages_seq  \\\n",
       "0  [16, 16, 16, 16, 16, 16, 18, 16, 16, 16, 16, 1...   \n",
       "1  [32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 3...   \n",
       "2  [32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 3...   \n",
       "3  [28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 2...   \n",
       "4       [16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16]   \n",
       "\n",
       "                                       music_ids_seq  \\\n",
       "0  [9266462, 10274802, 5284244, 7887489, 6904175,...   \n",
       "1  [1977322, 1977322, 1977322, 1977322, 1977322, ...   \n",
       "2  [1415848, 1415848, 1415848, 1415848, 1415848, ...   \n",
       "3  [9651688, 9651688, 9651688, 1995380, 9651688, ...   \n",
       "4  [1136194, 1136194, 1136194, 1136194, 1136194, ...   \n",
       "\n",
       "                                         actions_seq  \n",
       "0  [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ...  \n",
       "1      [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]  \n",
       "2  [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ...  \n",
       "3  [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ...  \n",
       "4                  [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]  "
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#处理序列嵌套\n",
    "from itertools import chain\n",
    "user_behavior_seq_df['pages_seq']=user_behavior_seq_df['pages_list'].map(lambda x:list(chain(*x)))\n",
    "user_behavior_seq_df['music_ids_seq']=user_behavior_seq_df['music_ids_list'].map(lambda x:list(chain(*x)))\n",
    "user_behavior_seq_df['actions_seq']=user_behavior_seq_df['actions_list'].map(lambda x:list(chain(*x)))\n",
    "user_behavior_seq_df.drop(['pages_list','music_ids_list','actions_list'],axis=1, inplace=True)\n",
    "user_behavior_seq_df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "id": "a9f4b60d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>device_id</th>\n",
       "      <th>day</th>\n",
       "      <th>channel</th>\n",
       "      <th>pages_seq</th>\n",
       "      <th>music_ids_seq</th>\n",
       "      <th>actions_seq</th>\n",
       "      <th>channel_most</th>\n",
       "      <th>channel_len</th>\n",
       "      <th>channel_unique</th>\n",
       "      <th>pages_most</th>\n",
       "      <th>pages_len</th>\n",
       "      <th>pages_unique</th>\n",
       "      <th>music_ids_most</th>\n",
       "      <th>music_ids_unique</th>\n",
       "      <th>actions_most</th>\n",
       "      <th>actions_unique</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2452</td>\n",
       "      <td>[4]</td>\n",
       "      <td>[5.0]</td>\n",
       "      <td>[16, 16, 16, 16, 16, 16, 18, 16, 16, 16, 16, 1...</td>\n",
       "      <td>[9266462, 10274802, 5284244, 7887489, 6904175,...</td>\n",
       "      <td>[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ...</td>\n",
       "      <td>5.0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>16</td>\n",
       "      <td>25</td>\n",
       "      <td>4</td>\n",
       "      <td>0</td>\n",
       "      <td>23</td>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>7181</td>\n",
       "      <td>[1, 16]</td>\n",
       "      <td>[5.0, 5.0]</td>\n",
       "      <td>[32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 3...</td>\n",
       "      <td>[1977322, 1977322, 1977322, 1977322, 1977322, ...</td>\n",
       "      <td>[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]</td>\n",
       "      <td>5.0</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>32</td>\n",
       "      <td>15</td>\n",
       "      <td>1</td>\n",
       "      <td>1977322</td>\n",
       "      <td>7</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>8685</td>\n",
       "      <td>[2, 3, 5, 6, 8, 9, 11, 12, 13, 14, 19, 22, 23,...</td>\n",
       "      <td>[5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, ...</td>\n",
       "      <td>[32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 3...</td>\n",
       "      <td>[1415848, 1415848, 1415848, 1415848, 1415848, ...</td>\n",
       "      <td>[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ...</td>\n",
       "      <td>5.0</td>\n",
       "      <td>15</td>\n",
       "      <td>2</td>\n",
       "      <td>32</td>\n",
       "      <td>280</td>\n",
       "      <td>3</td>\n",
       "      <td>1415848</td>\n",
       "      <td>13</td>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>9219</td>\n",
       "      <td>[1, 2, 7, 9, 10, 20, 24, 25, 26, 30]</td>\n",
       "      <td>[2.0, 2.0, 2.0, 2.0, 2.0, 5.0, 2.0, 2.0, 2.0, ...</td>\n",
       "      <td>[28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 2...</td>\n",
       "      <td>[9651688, 9651688, 9651688, 1995380, 9651688, ...</td>\n",
       "      <td>[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ...</td>\n",
       "      <td>2.0</td>\n",
       "      <td>10</td>\n",
       "      <td>2</td>\n",
       "      <td>28</td>\n",
       "      <td>21</td>\n",
       "      <td>1</td>\n",
       "      <td>9651688</td>\n",
       "      <td>6</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>9529</td>\n",
       "      <td>[1, 8, 23, 25, 26, 27, 29]</td>\n",
       "      <td>[0, 0, 0, 0, 0, 0, 0]</td>\n",
       "      <td>[16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16]</td>\n",
       "      <td>[1136194, 1136194, 1136194, 1136194, 1136194, ...</td>\n",
       "      <td>[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]</td>\n",
       "      <td>0</td>\n",
       "      <td>7</td>\n",
       "      <td>1</td>\n",
       "      <td>16</td>\n",
       "      <td>11</td>\n",
       "      <td>1</td>\n",
       "      <td>1136194</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   device_id                                                day  \\\n",
       "0       2452                                                [4]   \n",
       "1       7181                                            [1, 16]   \n",
       "2       8685  [2, 3, 5, 6, 8, 9, 11, 12, 13, 14, 19, 22, 23,...   \n",
       "3       9219               [1, 2, 7, 9, 10, 20, 24, 25, 26, 30]   \n",
       "4       9529                         [1, 8, 23, 25, 26, 27, 29]   \n",
       "\n",
       "                                             channel  \\\n",
       "0                                              [5.0]   \n",
       "1                                         [5.0, 5.0]   \n",
       "2  [5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, ...   \n",
       "3  [2.0, 2.0, 2.0, 2.0, 2.0, 5.0, 2.0, 2.0, 2.0, ...   \n",
       "4                              [0, 0, 0, 0, 0, 0, 0]   \n",
       "\n",
       "                                           pages_seq  \\\n",
       "0  [16, 16, 16, 16, 16, 16, 18, 16, 16, 16, 16, 1...   \n",
       "1  [32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 3...   \n",
       "2  [32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 3...   \n",
       "3  [28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 2...   \n",
       "4       [16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16]   \n",
       "\n",
       "                                       music_ids_seq  \\\n",
       "0  [9266462, 10274802, 5284244, 7887489, 6904175,...   \n",
       "1  [1977322, 1977322, 1977322, 1977322, 1977322, ...   \n",
       "2  [1415848, 1415848, 1415848, 1415848, 1415848, ...   \n",
       "3  [9651688, 9651688, 9651688, 1995380, 9651688, ...   \n",
       "4  [1136194, 1136194, 1136194, 1136194, 1136194, ...   \n",
       "\n",
       "                                         actions_seq channel_most  \\\n",
       "0  [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ...          5.0   \n",
       "1      [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]          5.0   \n",
       "2  [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ...          5.0   \n",
       "3  [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ...          2.0   \n",
       "4                  [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]            0   \n",
       "\n",
       "   channel_len  channel_unique  pages_most  pages_len  pages_unique  \\\n",
       "0            1               1          16         25             4   \n",
       "1            2               1          32         15             1   \n",
       "2           15               2          32        280             3   \n",
       "3           10               2          28         21             1   \n",
       "4            7               1          16         11             1   \n",
       "\n",
       "   music_ids_most  music_ids_unique  actions_most  actions_unique  \n",
       "0               0                23             1               3  \n",
       "1         1977322                 7             1               1  \n",
       "2         1415848                13             1               3  \n",
       "3         9651688                 6             1               1  \n",
       "4         1136194                 1             1               1  "
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#特征提取\n",
    "from collections import Counter\n",
    "user_behavior_seq_df['channel_most']=user_behavior_seq_df['channel'].map(lambda x:Counter(x).most_common(1)[0][0])\n",
    "user_behavior_seq_df['channel_len']=user_behavior_seq_df['channel'].map(len)\n",
    "user_behavior_seq_df['channel_unique']=user_behavior_seq_df['channel'].map(lambda x:len(set(x)))\n",
    "user_behavior_seq_df['pages_most']=user_behavior_seq_df['pages_seq'].map(lambda x:Counter(x).most_common(1)[0][0])\n",
    "user_behavior_seq_df['pages_len']=user_behavior_seq_df['pages_seq'].map(lambda x:len(x))\n",
    "user_behavior_seq_df['pages_unique']=user_behavior_seq_df['pages_seq'].map(lambda x:len(set(x)))\n",
    "user_behavior_seq_df['music_ids_most']=user_behavior_seq_df['music_ids_seq'].map(lambda x:Counter(x).most_common(1)[0][0])\n",
    "user_behavior_seq_df['music_ids_unique']=user_behavior_seq_df['music_ids_seq'].map(lambda x:len(set(x)))\n",
    "user_behavior_seq_df['actions_most']=user_behavior_seq_df['actions_seq'].map(lambda x:Counter(x).most_common(1)[0][0])\n",
    "user_behavior_seq_df['actions_unique']=user_behavior_seq_df['actions_seq'].map(lambda x:len(set(x)))\n",
    "user_behavior_seq_df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "id": "45a20c56",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "20"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#释放内存\n",
    "del temp_df\n",
    "gc.collect()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "2b0fee16",
   "metadata": {},
   "source": [
    "## 1.4.拼接用户音乐与对应歌手的信息"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "id": "29d484d3",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "3373077\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>music_id</th>\n",
       "      <th>title</th>\n",
       "      <th>artist_id</th>\n",
       "      <th>album</th>\n",
       "      <th>is_paid</th>\n",
       "      <th>comment</th>\n",
       "      <th>comment_cnt</th>\n",
       "      <th>artist</th>\n",
       "      <th>style</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>10444549.0</td>\n",
       "      <td>Somewhere Before</td>\n",
       "      <td>NaN</td>\n",
       "      <td>As Long As You're Living Yours: The Music of K...</td>\n",
       "      <td>1.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>10444405.0</td>\n",
       "      <td>Simple Gifts</td>\n",
       "      <td>NaN</td>\n",
       "      <td>Sleep Baby</td>\n",
       "      <td>1.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>10444351.0</td>\n",
       "      <td>Only Pretty, What A Pity</td>\n",
       "      <td>277775.0</td>\n",
       "      <td>Everything Playing</td>\n",
       "      <td>1.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>The Lovin' Spoonfu</td>\n",
       "      <td>摇滚</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>10444288.0</td>\n",
       "      <td>The Bergen</td>\n",
       "      <td>303217.0</td>\n",
       "      <td>Threads Of Time</td>\n",
       "      <td>1.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>Cherish The Ladie</td>\n",
       "      <td>世界音乐</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>10444246.0</td>\n",
       "      <td>I Shot The Sheriff</td>\n",
       "      <td>NaN</td>\n",
       "      <td>The Complete Show, Oakland Auditorium, Ca. Nov...</td>\n",
       "      <td>1.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "     music_id                     title  artist_id  \\\n",
       "0  10444549.0          Somewhere Before        NaN   \n",
       "1  10444405.0              Simple Gifts        NaN   \n",
       "2  10444351.0  Only Pretty, What A Pity   277775.0   \n",
       "3  10444288.0                The Bergen   303217.0   \n",
       "4  10444246.0        I Shot The Sheriff        NaN   \n",
       "\n",
       "                                               album  is_paid comment  \\\n",
       "0  As Long As You're Living Yours: The Music of K...      1.0     NaN   \n",
       "1                                         Sleep Baby      1.0     NaN   \n",
       "2                                 Everything Playing      1.0     NaN   \n",
       "3                                    Threads Of Time      1.0     NaN   \n",
       "4  The Complete Show, Oakland Auditorium, Ca. Nov...      1.0     NaN   \n",
       "\n",
       "   comment_cnt              artist style  \n",
       "0            0                 NaN   NaN  \n",
       "1            0                 NaN   NaN  \n",
       "2            0  The Lovin' Spoonfu    摇滚  \n",
       "3            0   Cherish The Ladie  世界音乐  \n",
       "4            0                 NaN   NaN  "
      ]
     },
     "execution_count": 31,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#拼接音乐信息表\n",
    "temp_df=pd.merge(music_info_df,artist_info_df,how='left', on='artist_id')\n",
    "print(len(temp_df))\n",
    "temp_df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "id": "98c8d9da",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Applications/anaconda3/envs/mypy37/lib/python3.7/site-packages/ipykernel_launcher.py:2: UserWarning: DataFrame columns are not unique, some columns will be omitted.\n",
      "  \n"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[10444549.0, 10444405.0, 10444351.0]\n",
      "[[nan, 1.0, 0, nan], [nan, 1.0, 0, nan], [277775.0, 1.0, 0, '摇滚']]\n"
     ]
    }
   ],
   "source": [
    "#音乐歌手、付费类型、评论数、风格字典\n",
    "music_dict=temp_df[['music_id','artist_id','is_paid','comment_cnt','style']].set_index('music_id').T.to_dict('list')\n",
    "print([i for i in music_dict][:3])\n",
    "print([i for i in music_dict.values()][:3])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "id": "01e20897",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "56"
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#释放内存\n",
    "del temp_df\n",
    "gc.collect()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "id": "c9ff7796",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 182592/182592 [03:28<00:00, 875.39it/s] \n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>device_id</th>\n",
       "      <th>day</th>\n",
       "      <th>channel</th>\n",
       "      <th>pages_seq</th>\n",
       "      <th>music_ids_seq</th>\n",
       "      <th>actions_seq</th>\n",
       "      <th>channel_most</th>\n",
       "      <th>channel_len</th>\n",
       "      <th>channel_unique</th>\n",
       "      <th>pages_most</th>\n",
       "      <th>pages_len</th>\n",
       "      <th>pages_unique</th>\n",
       "      <th>music_ids_most</th>\n",
       "      <th>music_ids_unique</th>\n",
       "      <th>actions_most</th>\n",
       "      <th>actions_unique</th>\n",
       "      <th>artist_id</th>\n",
       "      <th>is_paid</th>\n",
       "      <th>comment_cnt</th>\n",
       "      <th>style</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2452</td>\n",
       "      <td>[4]</td>\n",
       "      <td>[5.0]</td>\n",
       "      <td>[16, 16, 16, 16, 16, 16, 18, 16, 16, 16, 16, 1...</td>\n",
       "      <td>[9266462, 10274802, 5284244, 7887489, 6904175,...</td>\n",
       "      <td>[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ...</td>\n",
       "      <td>5.0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>16</td>\n",
       "      <td>25</td>\n",
       "      <td>4</td>\n",
       "      <td>0</td>\n",
       "      <td>23</td>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>[293401.0, 230558.0, 233249.0, 223424.0, 28341...</td>\n",
       "      <td>[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, ...</td>\n",
       "      <td>[105, 40, 134, 10, 16, 25, 53, 1379, 48, 13, 0...</td>\n",
       "      <td>[流行, 流行, 流行, 流行, 流行, 流行, 拉丁#流行, 流行, 流行, 流行, 摇滚...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>7181</td>\n",
       "      <td>[1, 16]</td>\n",
       "      <td>[5.0, 5.0]</td>\n",
       "      <td>[32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 3...</td>\n",
       "      <td>[1977322, 1977322, 1977322, 1977322, 1977322, ...</td>\n",
       "      <td>[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]</td>\n",
       "      <td>5.0</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>32</td>\n",
       "      <td>15</td>\n",
       "      <td>1</td>\n",
       "      <td>1977322</td>\n",
       "      <td>7</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>[24175.0, 24175.0, 24175.0, 24175.0, 24175.0, ...</td>\n",
       "      <td>[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, ...</td>\n",
       "      <td>[33937, 33937, 33937, 33937, 33937, 33937, 339...</td>\n",
       "      <td>[流行, 流行, 流行, 流行, 流行, 流行, 流行, 流行, 流行, 流行, 流行]</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>8685</td>\n",
       "      <td>[2, 3, 5, 6, 8, 9, 11, 12, 13, 14, 19, 22, 23,...</td>\n",
       "      <td>[5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, ...</td>\n",
       "      <td>[32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 3...</td>\n",
       "      <td>[1415848, 1415848, 1415848, 1415848, 1415848, ...</td>\n",
       "      <td>[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ...</td>\n",
       "      <td>5.0</td>\n",
       "      <td>15</td>\n",
       "      <td>2</td>\n",
       "      <td>32</td>\n",
       "      <td>280</td>\n",
       "      <td>3</td>\n",
       "      <td>1415848</td>\n",
       "      <td>13</td>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>[73436.0, 73436.0, 73436.0, 73436.0, 73436.0, ...</td>\n",
       "      <td>[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, ...</td>\n",
       "      <td>[169, 169, 169, 169, 169, 169, 169, 169, 169, ...</td>\n",
       "      <td>[流行, 流行, 流行, 流行, 流行, 流行, 流行, 流行, 流行, 流行, 流行, 流...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>9219</td>\n",
       "      <td>[1, 2, 7, 9, 10, 20, 24, 25, 26, 30]</td>\n",
       "      <td>[2.0, 2.0, 2.0, 2.0, 2.0, 5.0, 2.0, 2.0, 2.0, ...</td>\n",
       "      <td>[28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 2...</td>\n",
       "      <td>[9651688, 9651688, 9651688, 1995380, 9651688, ...</td>\n",
       "      <td>[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ...</td>\n",
       "      <td>2.0</td>\n",
       "      <td>10</td>\n",
       "      <td>2</td>\n",
       "      <td>28</td>\n",
       "      <td>21</td>\n",
       "      <td>1</td>\n",
       "      <td>9651688</td>\n",
       "      <td>6</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>[205922.0, 205922.0, 205922.0, 205922.0, 20592...</td>\n",
       "      <td>[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, ...</td>\n",
       "      <td>[7, 7, 7, 23, 7, 11, 3, 13, 11, 7, 11, 11, 13,...</td>\n",
       "      <td>[流行, 流行, 流行, 流行, 流行, 流行, 流行, 流行, 流行, 流行, 流行, 流...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>9529</td>\n",
       "      <td>[1, 8, 23, 25, 26, 27, 29]</td>\n",
       "      <td>[0, 0, 0, 0, 0, 0, 0]</td>\n",
       "      <td>[16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16]</td>\n",
       "      <td>[1136194, 1136194, 1136194, 1136194, 1136194, ...</td>\n",
       "      <td>[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]</td>\n",
       "      <td>0</td>\n",
       "      <td>7</td>\n",
       "      <td>1</td>\n",
       "      <td>16</td>\n",
       "      <td>11</td>\n",
       "      <td>1</td>\n",
       "      <td>1136194</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>[]</td>\n",
       "      <td>[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, ...</td>\n",
       "      <td>[1076, 1076, 1076, 1076, 1076, 1076, 1076, 107...</td>\n",
       "      <td>[]</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   device_id                                                day  \\\n",
       "0       2452                                                [4]   \n",
       "1       7181                                            [1, 16]   \n",
       "2       8685  [2, 3, 5, 6, 8, 9, 11, 12, 13, 14, 19, 22, 23,...   \n",
       "3       9219               [1, 2, 7, 9, 10, 20, 24, 25, 26, 30]   \n",
       "4       9529                         [1, 8, 23, 25, 26, 27, 29]   \n",
       "\n",
       "                                             channel  \\\n",
       "0                                              [5.0]   \n",
       "1                                         [5.0, 5.0]   \n",
       "2  [5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, ...   \n",
       "3  [2.0, 2.0, 2.0, 2.0, 2.0, 5.0, 2.0, 2.0, 2.0, ...   \n",
       "4                              [0, 0, 0, 0, 0, 0, 0]   \n",
       "\n",
       "                                           pages_seq  \\\n",
       "0  [16, 16, 16, 16, 16, 16, 18, 16, 16, 16, 16, 1...   \n",
       "1  [32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 3...   \n",
       "2  [32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 3...   \n",
       "3  [28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 2...   \n",
       "4       [16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16]   \n",
       "\n",
       "                                       music_ids_seq  \\\n",
       "0  [9266462, 10274802, 5284244, 7887489, 6904175,...   \n",
       "1  [1977322, 1977322, 1977322, 1977322, 1977322, ...   \n",
       "2  [1415848, 1415848, 1415848, 1415848, 1415848, ...   \n",
       "3  [9651688, 9651688, 9651688, 1995380, 9651688, ...   \n",
       "4  [1136194, 1136194, 1136194, 1136194, 1136194, ...   \n",
       "\n",
       "                                         actions_seq channel_most  \\\n",
       "0  [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ...          5.0   \n",
       "1      [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]          5.0   \n",
       "2  [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ...          5.0   \n",
       "3  [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ...          2.0   \n",
       "4                  [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]            0   \n",
       "\n",
       "   channel_len  channel_unique  pages_most  pages_len  pages_unique  \\\n",
       "0            1               1          16         25             4   \n",
       "1            2               1          32         15             1   \n",
       "2           15               2          32        280             3   \n",
       "3           10               2          28         21             1   \n",
       "4            7               1          16         11             1   \n",
       "\n",
       "   music_ids_most  music_ids_unique  actions_most  actions_unique  \\\n",
       "0               0                23             1               3   \n",
       "1         1977322                 7             1               1   \n",
       "2         1415848                13             1               3   \n",
       "3         9651688                 6             1               1   \n",
       "4         1136194                 1             1               1   \n",
       "\n",
       "                                           artist_id  \\\n",
       "0  [293401.0, 230558.0, 233249.0, 223424.0, 28341...   \n",
       "1  [24175.0, 24175.0, 24175.0, 24175.0, 24175.0, ...   \n",
       "2  [73436.0, 73436.0, 73436.0, 73436.0, 73436.0, ...   \n",
       "3  [205922.0, 205922.0, 205922.0, 205922.0, 20592...   \n",
       "4                                                 []   \n",
       "\n",
       "                                             is_paid  \\\n",
       "0  [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, ...   \n",
       "1  [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, ...   \n",
       "2  [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, ...   \n",
       "3  [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, ...   \n",
       "4  [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, ...   \n",
       "\n",
       "                                         comment_cnt  \\\n",
       "0  [105, 40, 134, 10, 16, 25, 53, 1379, 48, 13, 0...   \n",
       "1  [33937, 33937, 33937, 33937, 33937, 33937, 339...   \n",
       "2  [169, 169, 169, 169, 169, 169, 169, 169, 169, ...   \n",
       "3  [7, 7, 7, 23, 7, 11, 3, 13, 11, 7, 11, 11, 13,...   \n",
       "4  [1076, 1076, 1076, 1076, 1076, 1076, 1076, 107...   \n",
       "\n",
       "                                               style  \n",
       "0  [流行, 流行, 流行, 流行, 流行, 流行, 拉丁#流行, 流行, 流行, 流行, 摇滚...  \n",
       "1       [流行, 流行, 流行, 流行, 流行, 流行, 流行, 流行, 流行, 流行, 流行]  \n",
       "2  [流行, 流行, 流行, 流行, 流行, 流行, 流行, 流行, 流行, 流行, 流行, 流...  \n",
       "3  [流行, 流行, 流行, 流行, 流行, 流行, 流行, 流行, 流行, 流行, 流行, 流...  \n",
       "4                                                 []  "
      ]
     },
     "execution_count": 38,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#匹配信息\n",
    "user_behavior_seq_df['artist_id']=user_behavior_seq_df['music_ids_seq']\n",
    "user_behavior_seq_df['is_paid']=user_behavior_seq_df['music_ids_seq']\n",
    "user_behavior_seq_df['comment_cnt']=user_behavior_seq_df['music_ids_seq']\n",
    "user_behavior_seq_df['style']=user_behavior_seq_df['music_ids_seq']\n",
    "#处理\n",
    "from tqdm import tqdm,trange\n",
    "import time\n",
    "for i in trange(len(user_behavior_seq_df)):\n",
    "    x=user_behavior_seq_df.at[i,'music_ids_seq']\n",
    "    #注意去除异常值\n",
    "    x = list(filter(lambda x: x>0, x))\n",
    "    y=list(map(lambda x:music_dict.get(x,[np.nan,np.nan,np.nan,np.nan]),x))\n",
    "    user_behavior_seq_df.at[i,'artist_id']=list(filter(lambda x: pd.isnull(x)==False,[x[0] for x in y]))\n",
    "    user_behavior_seq_df.at[i,'is_paid']=list(filter(lambda x: pd.isnull(x)==False,[x[1] for x in y]))\n",
    "    user_behavior_seq_df.at[i,'comment_cnt']=list(filter(lambda x: pd.isnull(x)==False,[x[2] for x in y]))\n",
    "    user_behavior_seq_df.at[i,'style']=list(filter(lambda x: pd.isnull(x)==False,[x[3] for x in y]))\n",
    "user_behavior_seq_df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "id": "e3a9b29c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>device_id</th>\n",
       "      <th>day</th>\n",
       "      <th>channel</th>\n",
       "      <th>pages_seq</th>\n",
       "      <th>music_ids_seq</th>\n",
       "      <th>actions_seq</th>\n",
       "      <th>channel_most</th>\n",
       "      <th>channel_len</th>\n",
       "      <th>channel_unique</th>\n",
       "      <th>pages_most</th>\n",
       "      <th>...</th>\n",
       "      <th>music_ids_unique</th>\n",
       "      <th>actions_most</th>\n",
       "      <th>actions_unique</th>\n",
       "      <th>artist_id</th>\n",
       "      <th>is_paid</th>\n",
       "      <th>comment_cnt</th>\n",
       "      <th>style</th>\n",
       "      <th>artist_id_unique</th>\n",
       "      <th>is_paid_sum</th>\n",
       "      <th>comment_cnt_sum</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2452</td>\n",
       "      <td>[4]</td>\n",
       "      <td>[5.0]</td>\n",
       "      <td>[16, 16, 16, 16, 16, 16, 18, 16, 16, 16, 16, 1...</td>\n",
       "      <td>[9266462, 10274802, 5284244, 7887489, 6904175,...</td>\n",
       "      <td>[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ...</td>\n",
       "      <td>5.0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>16</td>\n",
       "      <td>...</td>\n",
       "      <td>23</td>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>[293401.0, 230558.0, 233249.0, 223424.0, 28341...</td>\n",
       "      <td>[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, ...</td>\n",
       "      <td>[105, 40, 134, 10, 16, 25, 53, 1379, 48, 13, 0...</td>\n",
       "      <td>[流行, 流行, 流行, 流行, 流行, 流行, 拉丁#流行, 流行, 流行, 流行, 摇滚...</td>\n",
       "      <td>17</td>\n",
       "      <td>21.0</td>\n",
       "      <td>2090</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>7181</td>\n",
       "      <td>[1, 16]</td>\n",
       "      <td>[5.0, 5.0]</td>\n",
       "      <td>[32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 3...</td>\n",
       "      <td>[1977322, 1977322, 1977322, 1977322, 1977322, ...</td>\n",
       "      <td>[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]</td>\n",
       "      <td>5.0</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>32</td>\n",
       "      <td>...</td>\n",
       "      <td>7</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>[24175.0, 24175.0, 24175.0, 24175.0, 24175.0, ...</td>\n",
       "      <td>[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, ...</td>\n",
       "      <td>[33937, 33937, 33937, 33937, 33937, 33937, 339...</td>\n",
       "      <td>[流行, 流行, 流行, 流行, 流行, 流行, 流行, 流行, 流行, 流行, 流行]</td>\n",
       "      <td>7</td>\n",
       "      <td>13.0</td>\n",
       "      <td>306775</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>8685</td>\n",
       "      <td>[2, 3, 5, 6, 8, 9, 11, 12, 13, 14, 19, 22, 23,...</td>\n",
       "      <td>[5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, ...</td>\n",
       "      <td>[32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 3...</td>\n",
       "      <td>[1415848, 1415848, 1415848, 1415848, 1415848, ...</td>\n",
       "      <td>[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ...</td>\n",
       "      <td>5.0</td>\n",
       "      <td>15</td>\n",
       "      <td>2</td>\n",
       "      <td>32</td>\n",
       "      <td>...</td>\n",
       "      <td>13</td>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>[73436.0, 73436.0, 73436.0, 73436.0, 73436.0, ...</td>\n",
       "      <td>[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, ...</td>\n",
       "      <td>[169, 169, 169, 169, 169, 169, 169, 169, 169, ...</td>\n",
       "      <td>[流行, 流行, 流行, 流行, 流行, 流行, 流行, 流行, 流行, 流行, 流行, 流...</td>\n",
       "      <td>10</td>\n",
       "      <td>57.0</td>\n",
       "      <td>51352</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>9219</td>\n",
       "      <td>[1, 2, 7, 9, 10, 20, 24, 25, 26, 30]</td>\n",
       "      <td>[2.0, 2.0, 2.0, 2.0, 2.0, 5.0, 2.0, 2.0, 2.0, ...</td>\n",
       "      <td>[28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 2...</td>\n",
       "      <td>[9651688, 9651688, 9651688, 1995380, 9651688, ...</td>\n",
       "      <td>[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ...</td>\n",
       "      <td>2.0</td>\n",
       "      <td>10</td>\n",
       "      <td>2</td>\n",
       "      <td>28</td>\n",
       "      <td>...</td>\n",
       "      <td>6</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>[205922.0, 205922.0, 205922.0, 205922.0, 20592...</td>\n",
       "      <td>[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, ...</td>\n",
       "      <td>[7, 7, 7, 23, 7, 11, 3, 13, 11, 7, 11, 11, 13,...</td>\n",
       "      <td>[流行, 流行, 流行, 流行, 流行, 流行, 流行, 流行, 流行, 流行, 流行, 流...</td>\n",
       "      <td>1</td>\n",
       "      <td>18.0</td>\n",
       "      <td>219</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>9529</td>\n",
       "      <td>[1, 8, 23, 25, 26, 27, 29]</td>\n",
       "      <td>[0, 0, 0, 0, 0, 0, 0]</td>\n",
       "      <td>[16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16]</td>\n",
       "      <td>[1136194, 1136194, 1136194, 1136194, 1136194, ...</td>\n",
       "      <td>[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]</td>\n",
       "      <td>0</td>\n",
       "      <td>7</td>\n",
       "      <td>1</td>\n",
       "      <td>16</td>\n",
       "      <td>...</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>[]</td>\n",
       "      <td>[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, ...</td>\n",
       "      <td>[1076, 1076, 1076, 1076, 1076, 1076, 1076, 107...</td>\n",
       "      <td>[]</td>\n",
       "      <td>0</td>\n",
       "      <td>11.0</td>\n",
       "      <td>11836</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 23 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "   device_id                                                day  \\\n",
       "0       2452                                                [4]   \n",
       "1       7181                                            [1, 16]   \n",
       "2       8685  [2, 3, 5, 6, 8, 9, 11, 12, 13, 14, 19, 22, 23,...   \n",
       "3       9219               [1, 2, 7, 9, 10, 20, 24, 25, 26, 30]   \n",
       "4       9529                         [1, 8, 23, 25, 26, 27, 29]   \n",
       "\n",
       "                                             channel  \\\n",
       "0                                              [5.0]   \n",
       "1                                         [5.0, 5.0]   \n",
       "2  [5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, ...   \n",
       "3  [2.0, 2.0, 2.0, 2.0, 2.0, 5.0, 2.0, 2.0, 2.0, ...   \n",
       "4                              [0, 0, 0, 0, 0, 0, 0]   \n",
       "\n",
       "                                           pages_seq  \\\n",
       "0  [16, 16, 16, 16, 16, 16, 18, 16, 16, 16, 16, 1...   \n",
       "1  [32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 3...   \n",
       "2  [32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 3...   \n",
       "3  [28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 2...   \n",
       "4       [16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16]   \n",
       "\n",
       "                                       music_ids_seq  \\\n",
       "0  [9266462, 10274802, 5284244, 7887489, 6904175,...   \n",
       "1  [1977322, 1977322, 1977322, 1977322, 1977322, ...   \n",
       "2  [1415848, 1415848, 1415848, 1415848, 1415848, ...   \n",
       "3  [9651688, 9651688, 9651688, 1995380, 9651688, ...   \n",
       "4  [1136194, 1136194, 1136194, 1136194, 1136194, ...   \n",
       "\n",
       "                                         actions_seq channel_most  \\\n",
       "0  [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ...          5.0   \n",
       "1      [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]          5.0   \n",
       "2  [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ...          5.0   \n",
       "3  [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ...          2.0   \n",
       "4                  [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]            0   \n",
       "\n",
       "   channel_len  channel_unique  pages_most  ...  music_ids_unique  \\\n",
       "0            1               1          16  ...                23   \n",
       "1            2               1          32  ...                 7   \n",
       "2           15               2          32  ...                13   \n",
       "3           10               2          28  ...                 6   \n",
       "4            7               1          16  ...                 1   \n",
       "\n",
       "   actions_most  actions_unique  \\\n",
       "0             1               3   \n",
       "1             1               1   \n",
       "2             1               3   \n",
       "3             1               1   \n",
       "4             1               1   \n",
       "\n",
       "                                           artist_id  \\\n",
       "0  [293401.0, 230558.0, 233249.0, 223424.0, 28341...   \n",
       "1  [24175.0, 24175.0, 24175.0, 24175.0, 24175.0, ...   \n",
       "2  [73436.0, 73436.0, 73436.0, 73436.0, 73436.0, ...   \n",
       "3  [205922.0, 205922.0, 205922.0, 205922.0, 20592...   \n",
       "4                                                 []   \n",
       "\n",
       "                                             is_paid  \\\n",
       "0  [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, ...   \n",
       "1  [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, ...   \n",
       "2  [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, ...   \n",
       "3  [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, ...   \n",
       "4  [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, ...   \n",
       "\n",
       "                                         comment_cnt  \\\n",
       "0  [105, 40, 134, 10, 16, 25, 53, 1379, 48, 13, 0...   \n",
       "1  [33937, 33937, 33937, 33937, 33937, 33937, 339...   \n",
       "2  [169, 169, 169, 169, 169, 169, 169, 169, 169, ...   \n",
       "3  [7, 7, 7, 23, 7, 11, 3, 13, 11, 7, 11, 11, 13,...   \n",
       "4  [1076, 1076, 1076, 1076, 1076, 1076, 1076, 107...   \n",
       "\n",
       "                                               style artist_id_unique  \\\n",
       "0  [流行, 流行, 流行, 流行, 流行, 流行, 拉丁#流行, 流行, 流行, 流行, 摇滚...               17   \n",
       "1       [流行, 流行, 流行, 流行, 流行, 流行, 流行, 流行, 流行, 流行, 流行]                7   \n",
       "2  [流行, 流行, 流行, 流行, 流行, 流行, 流行, 流行, 流行, 流行, 流行, 流...               10   \n",
       "3  [流行, 流行, 流行, 流行, 流行, 流行, 流行, 流行, 流行, 流行, 流行, 流...                1   \n",
       "4                                                 []                0   \n",
       "\n",
       "  is_paid_sum comment_cnt_sum  \n",
       "0        21.0            2090  \n",
       "1        13.0          306775  \n",
       "2        57.0           51352  \n",
       "3        18.0             219  \n",
       "4        11.0           11836  \n",
       "\n",
       "[5 rows x 23 columns]"
      ]
     },
     "execution_count": 40,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#提取特征\n",
    "#歌手\n",
    "user_behavior_seq_df['artist_id_unique']=user_behavior_seq_df['artist_id'].map(lambda x:len(set(x)))\n",
    "#付费\n",
    "user_behavior_seq_df['is_paid_sum']=user_behavior_seq_df['is_paid'].map(lambda x:sum(x))\n",
    "#评论\n",
    "user_behavior_seq_df['comment_cnt_sum']=user_behavior_seq_df['comment_cnt'].map(lambda x:sum(x))\n",
    "user_behavior_seq_df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 74,
   "id": "c785909b",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 182592/182592 [00:25<00:00, 7268.84it/s]\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>device_id</th>\n",
       "      <th>day</th>\n",
       "      <th>channel</th>\n",
       "      <th>pages_seq</th>\n",
       "      <th>music_ids_seq</th>\n",
       "      <th>actions_seq</th>\n",
       "      <th>channel_most</th>\n",
       "      <th>channel_len</th>\n",
       "      <th>channel_unique</th>\n",
       "      <th>pages_most</th>\n",
       "      <th>...</th>\n",
       "      <th>actions_unique</th>\n",
       "      <th>artist_id</th>\n",
       "      <th>is_paid</th>\n",
       "      <th>comment_cnt</th>\n",
       "      <th>style</th>\n",
       "      <th>artist_id_unique</th>\n",
       "      <th>is_paid_sum</th>\n",
       "      <th>comment_cnt_sum</th>\n",
       "      <th>style_most</th>\n",
       "      <th>style_most_name</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2452</td>\n",
       "      <td>[4]</td>\n",
       "      <td>[5.0]</td>\n",
       "      <td>[16, 16, 16, 16, 16, 16, 18, 16, 16, 16, 16, 1...</td>\n",
       "      <td>[9266462, 10274802, 5284244, 7887489, 6904175,...</td>\n",
       "      <td>[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ...</td>\n",
       "      <td>5.0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>16</td>\n",
       "      <td>...</td>\n",
       "      <td>3</td>\n",
       "      <td>[293401.0, 230558.0, 233249.0, 223424.0, 28341...</td>\n",
       "      <td>[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, ...</td>\n",
       "      <td>[105, 40, 134, 10, 16, 25, 53, 1379, 48, 13, 0...</td>\n",
       "      <td>[流行, 流行, 流行, 流行, 流行, 流行, 拉丁#流行, 流行, 流行, 流行, 摇滚...</td>\n",
       "      <td>17</td>\n",
       "      <td>21.0</td>\n",
       "      <td>2090</td>\n",
       "      <td>[-0.63109016, 0.22949956, -0.6075365, -0.19511...</td>\n",
       "      <td>流行</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>7181</td>\n",
       "      <td>[1, 16]</td>\n",
       "      <td>[5.0, 5.0]</td>\n",
       "      <td>[32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 3...</td>\n",
       "      <td>[1977322, 1977322, 1977322, 1977322, 1977322, ...</td>\n",
       "      <td>[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]</td>\n",
       "      <td>5.0</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>32</td>\n",
       "      <td>...</td>\n",
       "      <td>1</td>\n",
       "      <td>[24175.0, 24175.0, 24175.0, 24175.0, 24175.0, ...</td>\n",
       "      <td>[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, ...</td>\n",
       "      <td>[33937, 33937, 33937, 33937, 33937, 33937, 339...</td>\n",
       "      <td>[流行, 流行, 流行, 流行, 流行, 流行, 流行, 流行, 流行, 流行, 流行]</td>\n",
       "      <td>7</td>\n",
       "      <td>13.0</td>\n",
       "      <td>306775</td>\n",
       "      <td>[-0.7651284, 0.4849676, -0.8909233, -0.2247727...</td>\n",
       "      <td>流行</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>8685</td>\n",
       "      <td>[2, 3, 5, 6, 8, 9, 11, 12, 13, 14, 19, 22, 23,...</td>\n",
       "      <td>[5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, ...</td>\n",
       "      <td>[32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 3...</td>\n",
       "      <td>[1415848, 1415848, 1415848, 1415848, 1415848, ...</td>\n",
       "      <td>[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ...</td>\n",
       "      <td>5.0</td>\n",
       "      <td>15</td>\n",
       "      <td>2</td>\n",
       "      <td>32</td>\n",
       "      <td>...</td>\n",
       "      <td>3</td>\n",
       "      <td>[73436.0, 73436.0, 73436.0, 73436.0, 73436.0, ...</td>\n",
       "      <td>[0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, ...</td>\n",
       "      <td>[169, 169, 169, 169, 169, 169, 169, 169, 169, ...</td>\n",
       "      <td>[流行, 流行, 流行, 流行, 流行, 流行, 流行, 流行, 流行, 流行, 流行, 流...</td>\n",
       "      <td>10</td>\n",
       "      <td>57.0</td>\n",
       "      <td>51352</td>\n",
       "      <td>[-0.7625535, 0.41524613, -0.48051965, -0.61671...</td>\n",
       "      <td>流行</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>9219</td>\n",
       "      <td>[1, 2, 7, 9, 10, 20, 24, 25, 26, 30]</td>\n",
       "      <td>[2.0, 2.0, 2.0, 2.0, 2.0, 5.0, 2.0, 2.0, 2.0, ...</td>\n",
       "      <td>[28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 2...</td>\n",
       "      <td>[9651688, 9651688, 9651688, 1995380, 9651688, ...</td>\n",
       "      <td>[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ...</td>\n",
       "      <td>2.0</td>\n",
       "      <td>10</td>\n",
       "      <td>2</td>\n",
       "      <td>28</td>\n",
       "      <td>...</td>\n",
       "      <td>1</td>\n",
       "      <td>[205922.0, 205922.0, 205922.0, 205922.0, 20592...</td>\n",
       "      <td>[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, ...</td>\n",
       "      <td>[7, 7, 7, 23, 7, 11, 3, 13, 11, 7, 11, 11, 13,...</td>\n",
       "      <td>[流行, 流行, 流行, 流行, 流行, 流行, 流行, 流行, 流行, 流行, 流行, 流...</td>\n",
       "      <td>1</td>\n",
       "      <td>18.0</td>\n",
       "      <td>219</td>\n",
       "      <td>[-1.1121037, 0.595823, -0.91955787, -0.0097392...</td>\n",
       "      <td>流行</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>9529</td>\n",
       "      <td>[1, 8, 23, 25, 26, 27, 29]</td>\n",
       "      <td>[0, 0, 0, 0, 0, 0, 0]</td>\n",
       "      <td>[16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16]</td>\n",
       "      <td>[1136194, 1136194, 1136194, 1136194, 1136194, ...</td>\n",
       "      <td>[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]</td>\n",
       "      <td>0</td>\n",
       "      <td>7</td>\n",
       "      <td>1</td>\n",
       "      <td>16</td>\n",
       "      <td>...</td>\n",
       "      <td>1</td>\n",
       "      <td>[]</td>\n",
       "      <td>[1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, ...</td>\n",
       "      <td>[1076, 1076, 1076, 1076, 1076, 1076, 1076, 107...</td>\n",
       "      <td>[]</td>\n",
       "      <td>0</td>\n",
       "      <td>11.0</td>\n",
       "      <td>11836</td>\n",
       "      <td>0</td>\n",
       "      <td></td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 25 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "   device_id                                                day  \\\n",
       "0       2452                                                [4]   \n",
       "1       7181                                            [1, 16]   \n",
       "2       8685  [2, 3, 5, 6, 8, 9, 11, 12, 13, 14, 19, 22, 23,...   \n",
       "3       9219               [1, 2, 7, 9, 10, 20, 24, 25, 26, 30]   \n",
       "4       9529                         [1, 8, 23, 25, 26, 27, 29]   \n",
       "\n",
       "                                             channel  \\\n",
       "0                                              [5.0]   \n",
       "1                                         [5.0, 5.0]   \n",
       "2  [5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, 5.0, ...   \n",
       "3  [2.0, 2.0, 2.0, 2.0, 2.0, 5.0, 2.0, 2.0, 2.0, ...   \n",
       "4                              [0, 0, 0, 0, 0, 0, 0]   \n",
       "\n",
       "                                           pages_seq  \\\n",
       "0  [16, 16, 16, 16, 16, 16, 18, 16, 16, 16, 16, 1...   \n",
       "1  [32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 3...   \n",
       "2  [32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 3...   \n",
       "3  [28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 28, 2...   \n",
       "4       [16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16]   \n",
       "\n",
       "                                       music_ids_seq  \\\n",
       "0  [9266462, 10274802, 5284244, 7887489, 6904175,...   \n",
       "1  [1977322, 1977322, 1977322, 1977322, 1977322, ...   \n",
       "2  [1415848, 1415848, 1415848, 1415848, 1415848, ...   \n",
       "3  [9651688, 9651688, 9651688, 1995380, 9651688, ...   \n",
       "4  [1136194, 1136194, 1136194, 1136194, 1136194, ...   \n",
       "\n",
       "                                         actions_seq channel_most  \\\n",
       "0  [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ...          5.0   \n",
       "1      [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]          5.0   \n",
       "2  [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ...          5.0   \n",
       "3  [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ...          2.0   \n",
       "4                  [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]            0   \n",
       "\n",
       "   channel_len  channel_unique  pages_most  ...  actions_unique  \\\n",
       "0            1               1          16  ...               3   \n",
       "1            2               1          32  ...               1   \n",
       "2           15               2          32  ...               3   \n",
       "3           10               2          28  ...               1   \n",
       "4            7               1          16  ...               1   \n",
       "\n",
       "                                           artist_id  \\\n",
       "0  [293401.0, 230558.0, 233249.0, 223424.0, 28341...   \n",
       "1  [24175.0, 24175.0, 24175.0, 24175.0, 24175.0, ...   \n",
       "2  [73436.0, 73436.0, 73436.0, 73436.0, 73436.0, ...   \n",
       "3  [205922.0, 205922.0, 205922.0, 205922.0, 20592...   \n",
       "4                                                 []   \n",
       "\n",
       "                                             is_paid  \\\n",
       "0  [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, ...   \n",
       "1  [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, ...   \n",
       "2  [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, ...   \n",
       "3  [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 1.0, 1.0, ...   \n",
       "4  [1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, ...   \n",
       "\n",
       "                                         comment_cnt  \\\n",
       "0  [105, 40, 134, 10, 16, 25, 53, 1379, 48, 13, 0...   \n",
       "1  [33937, 33937, 33937, 33937, 33937, 33937, 339...   \n",
       "2  [169, 169, 169, 169, 169, 169, 169, 169, 169, ...   \n",
       "3  [7, 7, 7, 23, 7, 11, 3, 13, 11, 7, 11, 11, 13,...   \n",
       "4  [1076, 1076, 1076, 1076, 1076, 1076, 1076, 107...   \n",
       "\n",
       "                                               style  artist_id_unique  \\\n",
       "0  [流行, 流行, 流行, 流行, 流行, 流行, 拉丁#流行, 流行, 流行, 流行, 摇滚...                17   \n",
       "1       [流行, 流行, 流行, 流行, 流行, 流行, 流行, 流行, 流行, 流行, 流行]                 7   \n",
       "2  [流行, 流行, 流行, 流行, 流行, 流行, 流行, 流行, 流行, 流行, 流行, 流...                10   \n",
       "3  [流行, 流行, 流行, 流行, 流行, 流行, 流行, 流行, 流行, 流行, 流行, 流...                 1   \n",
       "4                                                 []                 0   \n",
       "\n",
       "  is_paid_sum comment_cnt_sum  \\\n",
       "0        21.0            2090   \n",
       "1        13.0          306775   \n",
       "2        57.0           51352   \n",
       "3        18.0             219   \n",
       "4        11.0           11836   \n",
       "\n",
       "                                          style_most style_most_name  \n",
       "0  [-0.63109016, 0.22949956, -0.6075365, -0.19511...              流行  \n",
       "1  [-0.7651284, 0.4849676, -0.8909233, -0.2247727...              流行  \n",
       "2  [-0.7625535, 0.41524613, -0.48051965, -0.61671...              流行  \n",
       "3  [-1.1121037, 0.595823, -0.91955787, -0.0097392...              流行  \n",
       "4                                                  0                  \n",
       "\n",
       "[5 rows x 25 columns]"
      ]
     },
     "execution_count": 74,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#风格处理\n",
    "user_behavior_seq_df['style_most_name']=''\n",
    "#循环\n",
    "for i in trange(len(user_behavior_seq_df)):\n",
    "    x=user_behavior_seq_df.at[i,'style']\n",
    "    #注意去除异常值\n",
    "    if len(x)>0:\n",
    "        #复合风格拆分后取最多的\n",
    "        y='#'.join(x)\n",
    "        y=Counter(y.split(sep='#')).most_common(1)[0][0]\n",
    "        user_behavior_seq_df.at[i,'style_most_name']=y\n",
    "user_behavior_seq_df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "id": "eef19a8d",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "备份完成 \n"
     ]
    }
   ],
   "source": [
    "#备份到本地文件\n",
    "#https://www.cnblogs.com/harrylyx/p/15141986.html\n",
    "#https://www.cnblogs.com/hider/p/15263528.html\n",
    "import tables\n",
    "import pyarrow as pa\n",
    "import pyarrow.parquet as pq\n",
    "import pyarrow.feather as feather\n",
    "import pickle\n",
    "with open('./user_behavior_seq_df.pkl', 'wb') as f:\n",
    "    pickle.dump(user_behavior_seq_df, f)\n",
    "with open('./user_behavior_df.pkl', 'wb') as f:\n",
    "    pickle.dump(user_behavior_df, f)\n",
    "\n",
    "print('备份完成 ')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "7cedb46b",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "读取完成\n"
     ]
    }
   ],
   "source": [
    "#读取pickle文件\n",
    "import pickle\n",
    "df=open('./user_behavior_seq_df.pkl','rb')#注意此处是rb\n",
    "#此处使用的是load(目标文件)\n",
    "user_behavior_seq_df=pickle.load(df)\n",
    "df.close()\n",
    "\n",
    "print('读取完成')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "327b3f09",
   "metadata": {},
   "source": [
    "# 二.用户聚类\n",
    "* 参考论文中的流程，先对用户聚类有助于提高流失率预测精度。由于无法获取到用户的社交网络数据，转而使用用户行为聚类。\n",
    "* 基于用户的行聚类：基于操作时长，操作类型，喜欢的歌曲数量与热度(评论数)，喜欢的歌手数量与风格。\n",
    "* 没有考虑性别，是否vip等信息，因为这些信息可能区分能力过大，导致用户行为的影响过小[4个步骤教你用聚类分析法进行用户分析](https://jishuin.proginn.com/p/763bfbd605e9)\n",
    "* 先使用tsne方法对歌手风格降维，然后把降维后的前两维向量作为kmeans的输入.[动手实战基于 ML 的中文短文本聚类](https://zhuanlan.zhihu.com/p/112362700)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "94c8996e",
   "metadata": {},
   "source": [
    "## 2.1.歌手风格向量化tsne降维"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "224815f5",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "loading vocabulary file /Users/zhuochen/.fastNLP/embedding/bert-base-chinese/vocab.txt\n",
      "Load pre-trained BERT parameters from file /Users/zhuochen/.fastNLP/embedding/bert-base-chinese/pytorch_model.bin.\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>style_most_name</th>\n",
       "      <th>vec</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>流行</td>\n",
       "      <td>[-1.2793686, 0.8155391, -0.81094, -0.2655769, ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td></td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>草原风</td>\n",
       "      <td>[-0.7356028, 0.5530313, -0.7035904, -0.3973162...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>说唱</td>\n",
       "      <td>[-1.0245255, 0.8199401, -0.15269054, -0.413091...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>越剧</td>\n",
       "      <td>[-0.90574515, 0.46694583, -0.50223905, -0.3588...</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "  style_most_name                                                vec\n",
       "0              流行  [-1.2793686, 0.8155391, -0.81094, -0.2655769, ...\n",
       "1                                                                  0\n",
       "2             草原风  [-0.7356028, 0.5530313, -0.7035904, -0.3973162...\n",
       "3              说唱  [-1.0245255, 0.8199401, -0.15269054, -0.413091...\n",
       "4              越剧  [-0.90574515, 0.46694583, -0.50223905, -0.3588..."
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#风格embedding\n",
    "style_list=list(set(user_behavior_seq_df['style_most_name']))\n",
    "#print(style_list)\n",
    "import torch\n",
    "from fastNLP import Vocabulary\n",
    "from fastNLP.embeddings import BertEmbedding\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "#初始化\n",
    "vocab = Vocabulary()\n",
    "embed = BertEmbedding(vocab, model_dir_or_name='cn-base', requires_grad=False)\n",
    "#循环\n",
    "def fun_embed(x):\n",
    "    if len(x)>1:\n",
    "        words = torch.LongTensor([[vocab.to_index(word) for word in x]])\n",
    "        y=np.array(embed(words).numpy().mean(axis=0)).mean(axis=0)\n",
    "    else:\n",
    "        y=0\n",
    "    return y\n",
    "style_vec=list(map(fun_embed,style_list))\n",
    "style_df=pd.DataFrame({'style_most_name':style_list,'vec':style_vec})\n",
    "style_df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "3d7704ea",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "my_bar: 100%|██████████| 32/32 [00:00<00:00, 774.59it/s]\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>x0</th>\n",
       "      <th>x1</th>\n",
       "      <th>x2</th>\n",
       "      <th>x3</th>\n",
       "      <th>x4</th>\n",
       "      <th>x5</th>\n",
       "      <th>x6</th>\n",
       "      <th>x7</th>\n",
       "      <th>x8</th>\n",
       "      <th>x9</th>\n",
       "      <th>...</th>\n",
       "      <th>x758</th>\n",
       "      <th>x759</th>\n",
       "      <th>x760</th>\n",
       "      <th>x761</th>\n",
       "      <th>x762</th>\n",
       "      <th>x763</th>\n",
       "      <th>x764</th>\n",
       "      <th>x765</th>\n",
       "      <th>x766</th>\n",
       "      <th>x767</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>-1.279369</td>\n",
       "      <td>0.815539</td>\n",
       "      <td>-0.810940</td>\n",
       "      <td>-0.265577</td>\n",
       "      <td>0.383471</td>\n",
       "      <td>-0.854947</td>\n",
       "      <td>-0.057001</td>\n",
       "      <td>0.581599</td>\n",
       "      <td>-0.425656</td>\n",
       "      <td>0.010437</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.237096</td>\n",
       "      <td>0.748048</td>\n",
       "      <td>-0.701064</td>\n",
       "      <td>-1.733449</td>\n",
       "      <td>-0.101800</td>\n",
       "      <td>-0.864982</td>\n",
       "      <td>0.070957</td>\n",
       "      <td>-0.377556</td>\n",
       "      <td>-0.263776</td>\n",
       "      <td>0.172112</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>...</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.000000</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>-0.735603</td>\n",
       "      <td>0.553031</td>\n",
       "      <td>-0.703590</td>\n",
       "      <td>-0.397316</td>\n",
       "      <td>0.260951</td>\n",
       "      <td>-1.099136</td>\n",
       "      <td>0.260379</td>\n",
       "      <td>0.424599</td>\n",
       "      <td>-0.760006</td>\n",
       "      <td>0.585819</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.073147</td>\n",
       "      <td>0.262841</td>\n",
       "      <td>-0.471554</td>\n",
       "      <td>-1.573940</td>\n",
       "      <td>-0.275203</td>\n",
       "      <td>-0.490632</td>\n",
       "      <td>-0.178806</td>\n",
       "      <td>0.228764</td>\n",
       "      <td>0.176955</td>\n",
       "      <td>-0.323884</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>-1.024526</td>\n",
       "      <td>0.819940</td>\n",
       "      <td>-0.152691</td>\n",
       "      <td>-0.413091</td>\n",
       "      <td>0.415911</td>\n",
       "      <td>-1.071084</td>\n",
       "      <td>0.132981</td>\n",
       "      <td>0.454327</td>\n",
       "      <td>-0.975406</td>\n",
       "      <td>-0.179163</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.088169</td>\n",
       "      <td>0.625521</td>\n",
       "      <td>-0.459964</td>\n",
       "      <td>-1.967038</td>\n",
       "      <td>-0.302664</td>\n",
       "      <td>-0.897392</td>\n",
       "      <td>-0.061462</td>\n",
       "      <td>0.172074</td>\n",
       "      <td>-0.169146</td>\n",
       "      <td>-0.099538</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>-0.905745</td>\n",
       "      <td>0.466946</td>\n",
       "      <td>-0.502239</td>\n",
       "      <td>-0.358835</td>\n",
       "      <td>0.486311</td>\n",
       "      <td>-1.320464</td>\n",
       "      <td>0.619967</td>\n",
       "      <td>0.720281</td>\n",
       "      <td>-0.950337</td>\n",
       "      <td>-0.034502</td>\n",
       "      <td>...</td>\n",
       "      <td>-0.078724</td>\n",
       "      <td>0.254649</td>\n",
       "      <td>-0.814785</td>\n",
       "      <td>-1.575930</td>\n",
       "      <td>-0.441682</td>\n",
       "      <td>-1.166417</td>\n",
       "      <td>-0.492276</td>\n",
       "      <td>0.456080</td>\n",
       "      <td>-0.138491</td>\n",
       "      <td>-0.583236</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 768 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "         x0        x1        x2        x3        x4        x5        x6  \\\n",
       "0 -1.279369  0.815539 -0.810940 -0.265577  0.383471 -0.854947 -0.057001   \n",
       "1  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000   \n",
       "2 -0.735603  0.553031 -0.703590 -0.397316  0.260951 -1.099136  0.260379   \n",
       "3 -1.024526  0.819940 -0.152691 -0.413091  0.415911 -1.071084  0.132981   \n",
       "4 -0.905745  0.466946 -0.502239 -0.358835  0.486311 -1.320464  0.619967   \n",
       "\n",
       "         x7        x8        x9  ...      x758      x759      x760      x761  \\\n",
       "0  0.581599 -0.425656  0.010437  ... -0.237096  0.748048 -0.701064 -1.733449   \n",
       "1  0.000000  0.000000  0.000000  ...  0.000000  0.000000  0.000000  0.000000   \n",
       "2  0.424599 -0.760006  0.585819  ... -0.073147  0.262841 -0.471554 -1.573940   \n",
       "3  0.454327 -0.975406 -0.179163  ... -0.088169  0.625521 -0.459964 -1.967038   \n",
       "4  0.720281 -0.950337 -0.034502  ... -0.078724  0.254649 -0.814785 -1.575930   \n",
       "\n",
       "       x762      x763      x764      x765      x766      x767  \n",
       "0 -0.101800 -0.864982  0.070957 -0.377556 -0.263776  0.172112  \n",
       "1  0.000000  0.000000  0.000000  0.000000  0.000000  0.000000  \n",
       "2 -0.275203 -0.490632 -0.178806  0.228764  0.176955 -0.323884  \n",
       "3 -0.302664 -0.897392 -0.061462  0.172074 -0.169146 -0.099538  \n",
       "4 -0.441682 -1.166417 -0.492276  0.456080 -0.138491 -0.583236  \n",
       "\n",
       "[5 rows x 768 columns]"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#将风格变量转成常见的样本*特征格式\n",
    "n=768#fastnlp的词向量维度\n",
    "style_index=list(['x' + str(j) for j in range(n)])\n",
    "from tqdm import tqdm\n",
    "tqdm.pandas(desc='my_bar')\n",
    "temp_df=style_df['vec'].progress_apply(pd.Series,index=style_index)\n",
    "temp_df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "af762465",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>dim1</th>\n",
       "      <th>dim2</th>\n",
       "      <th>style_most_name</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>-24.092134</td>\n",
       "      <td>-15.032055</td>\n",
       "      <td>流行</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>-70.578026</td>\n",
       "      <td>-34.418716</td>\n",
       "      <td></td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>20.115042</td>\n",
       "      <td>-3.205137</td>\n",
       "      <td>草原风</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>-16.949816</td>\n",
       "      <td>-34.578701</td>\n",
       "      <td>说唱</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>-8.630529</td>\n",
       "      <td>-56.995445</td>\n",
       "      <td>越剧</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "        dim1       dim2 style_most_name\n",
       "0 -24.092134 -15.032055              流行\n",
       "1 -70.578026 -34.418716                \n",
       "2  20.115042  -3.205137             草原风\n",
       "3 -16.949816 -34.578701              说唱\n",
       "4  -8.630529 -56.995445              越剧"
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#tsne计算\n",
    "from sklearn.manifold import TSNE\n",
    "X_embedded = TSNE(n_components=2,init='pca').fit_transform(np.array(temp_df))\n",
    "tsne_df = pd.DataFrame({'dim1':X_embedded[:,0],\n",
    "                        'dim2':X_embedded[:,1],\n",
    "                        'style_most_name':style_df['style_most_name']},index = style_df.index)\n",
    "tsne_df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "e2507654",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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ERERERERLwoWRURERERExIuCRREREREREfGiYFFERERERES8KFgUERERERERLwoWRURERERExIuCRREREREREfGiYFFERERERES8KFgUERERERERLwoWRURERERExIuCRREREREREfGiYFFERERERES8KFgUERERERERLwoWRURERERExMt1HSx+9dVXLFq0yPN6zZo1tGnThho1atCsWTPmzp2LYRi52EIREREREZH86boNFk+fPs348eM9r7/55hv69++Pn58fAwcOJCoqiilTpjBp0qRcbKWIiIiIiEj+ZM3tBmRlzJgxxMbGel6/+uqr1KtXj/feew+LxQJAuXLlmDp1Ko888ghly5bNpZaKiIiIiIjkP9flzOLKlStZtWqV5/Uff/zBoUOH6NWrlydQBOjatSsFChRg2bJludFMERERERGRfOu6CxbPnTvHyy+/zG233eY5tmfPHkwmEw0aNMhQ1sfHh6ioKHbt2nWtmykiIiIiIpKvXXfB4tixY0lJSeHll1/2HDt16hQFCxbE39/fq3yJEiU4fvz4tWyiiIiIiIhIvnddPbO4bt06li1bxosvvkjx4sU9x+12O76+vple4+vrS2pq6hXdz2SCkBDvAFSuLas1fWmxxiJ/0HjmHxrL/EXjmX9oLPMXjWf+kRfH0mTK/vx1M7MYHx/PSy+9RFRUFJ06dcpwztfXl7S0tEyvs9vt+Pn5XYsmioiIiIiI3DCum5nFCRMmcPbsWSZPnsyJEyc8x+Pj4ylcuDDnzp0jLS0NHx+fDNcdO3aMYsWKXdE93W6Ii0v5T+2W/+7Cty8ai/xB45l/aCzzF41n/qGxzF80nvlHXhzLsLCgbGcXr4tgcePGjSxatAiAxx57LMO5CRMmYLFYMAyDHTt2cPPNN3vOORwOfvrpJzp27HhN2ysiIiIiIpLfXRfBYnBwMG+99ZbX8aeeeorHH3+c5s2bM2LECObNm0dUVBSm8+HvBx98QFxcHK1bt77WTRYREREREcnXrotgsWbNmlmeq1KlCvXr12fo0KH07duXrl270rhxY/bv38+XX35J9+7dKVeu3DVsrYiIiIiISP533SS4uZg777yTadOmce7cOV5//XW2bt3K4MGDGTRoUG43TUREREREJN+5LmYWs/L7779neN2iRQtatGiRS60RERERERG5ceSZmUURERERERG5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x/3ChYtkuMepUyc5dOggyclJFChQwLOVj8g/aRmqiIiIiMg1kN12Pcln9pPw1w4ATp8+xeDBz9Oq1f3YbH8/ZxgWVpgZM+by4ovPM23aZCA9kVaTJs08ZWbPng6kz0Q+//yLnuOvvTaRyZNfIS3NDkCXLo8QGBiE3W6nQoWKOdtRyTcULIqIiIiIXAPZbdfjW6AYbsPJE0/1o1P7zhmCxH8KDy/GW2+9w/fff8uaNV9Tp049Chcu7DnfqdNjWCwWRowYhdlsxm6307VrTypVqkJkZHEKFixIUFABfH3T92EcN24Uhw4duHqdljzN5L7SfOD5gGG4OXMmMbebccMLCfEHIC4uJZdbIjlB45l/aCzzF41n/qGxzNuyyoZqtZgZ0rkmlUoU/s9ZmB0OR5bBplw9efF3MywsCLPZlOV5zSyKiIiIiFwjmW3XUzYymAZVc267HgWKklMULIqIiIiIXEP/3K7n3lvL4Ha7iY1N0XY9ct1RsCgiIiIikgscDpdnuwyR65G2zhAREREREREvChZFRERERETEi4JFERERERER8aJgUURERERERLwoWBQREREREREvChZFRERERETEi4JFERERERER8aJgUURERERERLwoWBQREREREREvChZFRERERETEi4JFERERERER8aJgUURERERERLwoWBQREREREREvChZFRERERETEi4JFERERERER8aJgUURERERERLwoWBQREREREREvChZFRERERETEi4JFERERERER8aJgUURERERERLwoWBQREREREREvChZFRPKwrl078eKLz/Pbb79e9rXbtm3BMIzLvi46+i82b97I6dOnAYiLi+Wbb9Zw+PChLK+JiYm+7PuIiIhI7rqugsW1a9fy4IMPUr16dRo3bszkyZNJS0vznF+zZg1t2rShRo0aNGvWjLlz517RBx0RkfzgwIF97Nv3B4cOHaBy5SqXde3q1St59tl+rFixNMNxt9tNSkoKLpcry2uPHDnMkCFPk5ycCEBqaiovvfS8J1g8fjyG337bxcqVy5g8+RXat29Dp05tOXBg3+V1UERERHKVNbcbcMGiRYt4/vnniYqKon///hw8eJB58+axf/9+Zs2axTfffEP//v2pXbs2AwcOZN++fUyZMoWzZ88ybNiw3G6+iMhVk5ychNvtxs/PH4vF4jm+du1qAHr37o/N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hIRgs9kylIuMjPxvLb6GFCxeH/LiL5ZkTeOZf2gs85crHc+ssqFemM0qXSQox4OUhISEfPPF9NUQEuKPyQQpKQ4Mw+219FTyFr3X5h95cSwvFixe8jJUm81G9erV2bBhA6NGjcqy3J49ey6rgSIiInL9chsGpYsGMWtoM7btPs6hmKs/m6VA8eLcbrDbnRcvKCLyH1xysDh79mxmzZrF7bffTsOGDQkKCtI+OCIiIjcAt2FgARrXjKBp7UjPbJZSGYiI5G+XHO19/PHHNGvWjBkzZlzN9oiIiMh1SssdRURuLOZLLXju3Dnq1q17NdsiIiIiIiIi14lLDharVavGr7/+ejXbIiIiIiIiIteJSw4WBw0axLp16/jwww+vZntERERERETkOnDJzyx+/vnnlChRgpdffpn58+dTuXJlr2xlJpOJ8ePH53gjRURERERE5Nq65GBx69atAEREROByudi9e7dXmX9umisiIiIiIiJ51yUHi+vWrbua7RAREREREZHrSLbPLJ49e5bo6Ohr1RYRERERERG5TmQ7s9iuXTvOnTvHd999R5s2bS66zNRkMrF27docbaCIiIiIiIhce9kGi+XLlyc6Oho/Pz+ioqL0TKKIiIiIiMgNIttgcfTo0QCcPn2aAQMGXJMGiYiIiIiISO7LNlhs1qzZZc8m7tmz5z81SERERERERHJftsHi+PHjMwSLX331FVu3buW+++6jcePGmEwm1q9fz/Lly7njjju4++67r3qDRURERERE5OrLNlh86KGHPH/funUrP/74I5MnT6ZVq1ae461ataJu3bpMmDCB/v37X72WioiIiIiIyDWT7dYZ//TWW29x2223ZQgUL+jUqRPVq1dnxowZOdo4ERERERERyR2XHCzu2rWLqKioLM/feuutbNu2LUcaJSIiIiIiIrnrkoNFt9uNYRhZnrfZbDgcjhxplIiIiIiIiOSuSw4Wq1SpwoYNG7I8/+2331KpUqUcaZSIiIiIiIjkrksOFjt27MiPP/7Iu+++63VuxowZ/PLLL3Ts2DEn2yYiIiIiInLVxMbGMmnSeD788P0run779p/44IMFJCcnkZSUxKBBz7J69dc53Mrck2021H+677772LRpE6+88gobN27kjjvuwDAM1q5dy9atW3nggQdo06bNVWyqiIiIiIhIzjGbTXz11SLuvvueK7p+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YrH49p90OLz7aTZv3tIv8Js8eRw7d/7JyJFjKFUqnvT0NGy2IGw2G8ePH+POOzsxefLLXHddIwAyMzMxDIPQ0FCcTid//vkHRYpEZztv1eFw4Ha7KFeuArfffitt2rRj0KAnzvr53nprNnv27GHBgsUALFgwh+bNWylYFEHBooiIiJyByWxm77FUxszZhMv9T8+gx9qQp8b0xGQ2n3HzbqvVyvr13+a4SM3kyeP46qsvAtImTx7nO+7QoTNFi8Zme73L5WLy5LFUr34NN97YmpdfnkKLFjdy/fXe/RGz9lm84opKVKxYyVt/jyfH+sg/DMPg888/pW3b9r60119/laNHjxAUFOT3GmYFeddcU8MvWHS5XJw6lerbpqRv37vZt28vJpMJi8W73+awYY9hNptxOp0YhkGrVjfx7LPjSElJ5v77+2CxWHx5szgc3kWK6tVryIABj3LqVArR0THn9HzBwSFER0f7joOCggkNDezlFrkc5dtg8eTJkzz33HNMnTrVl3b48GHGjRvH119/DcANN9zAk08+ScmSJfOqmiIiIoWeyzACAkUAc0gM89YlcH0DsORw7elymyP4+ONP8vjjT2KzWbFYrJjNJrw9jAZutwen04HJZGLZsveyvf7FFyfz5587ePXVN7j66mtYsWIpr7wyheuua8Rnn61m/PjR1KhRi19//Zm3355Hjx69WbFiKUFBQbRseVPAEFgtcPOP0NBQwL/93nhjPkWKFMFkMvnS3n13ATNnvkrnzl2Ji4v3K8NisfiuNwyD4cOfISwsjODgEE6ePMmDD97DqFHPU736NTidTtLT0wHvPNeYmKJ89NFnhIdH+Mqw2zOxWm1069aRjh1vp1OnLqxYsRSANm1uzvV5MjIycLvd2GxWwITJZMIwDOx2O4Cvl9R7bOB0urBarb45sCKXk3wbLI4ZM4YTJ074jlNTU+nZsydpaWn07NkTi8XCokWL6NWrF0uXLiUyMjIPaysiIlI42WwWNv58OCBQzOJye9i07QhNa5bybert3VPxzAvaZM0rTEg4QVpa6lnVJzk5CcP4p2yHw8Err0xlxYoldOzYxTcX8YknhhMbG8s778xn5sxXqV//WiZMmMJLL73AjBnTMJnM/PXXDtas+Zh69Rr4gsWsss9lgZvT61OY7NmzG4DExMS//5/A3r17/l6d9kr27dvL1q0/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jRs3DovFovYsQEwmU8B32azFp6xWa6F7f2qBG7mk6tWrx+7du9mwYYMv7fjx46xevZqGDRsC0Lp1az755BPfRuAABw8eZNmyZdx2222XvM4SKDU1leHDhzNjxgy//66//noqV67MjBkzKFu2rNqygPnhhx8YPHgwbdu2ZciQIQHn1Z4Fz3XXXUdUVBSzZs3yS58+fTohISHceOONeVQzORtjx45l7dq1TJkyxa8XuHLlylSoUIHZs2djGIYvfeHChSQnJ9O+ffu8qK7kICoqKuDfyxkzZgDQu3dv5s2bp/YsQOrXr8/SpUv95v6/9957ZGZm0qBBg0L3/jQZpz+FyEXmcrno0aMHv//+O926dSMqKoolS5bgcrlYtmwZJUuWJDU1lQ4dOmC32+nWrRsAixcvJjQ01G8RHMl/hg0bxsGDB5k/fz6A2rIA2bVrF927d8fhcDBw4MCAoTNdu3bF4XCoPQug+fPnM2bMGFq3bk2dOnX46aefWL16Nc8880zA3CnJP9544w0mTZpE3bp1ueWWW/zOlS1bFpfLRf/+/bn22mtp2rQpO3fuZPny5dx777088cQTeVRrORdVqlRh3LhxdO7cmc8//1ztWUD8+uuvdO/enbJly9K+fXvfj6a33norEydOBChU7algUS65lJQUxo8fz6efforT6eS6665j+PDhlCtXzpfn0KFDjB07lm+++QaTyUSzZs0YOnQoJUuWzMOay5n8O1gEtWVBcOLECbp16+abe5id77//nqioKLVnAfXOO+8wd+5cDh48SLly5ejXrx+dOnXK62pJDj766CMef/xxcvqK1qpVK6ZPn87q1at59dVX2bVrFyVLluSuu+7innvuCVhwTPKn04NFQO1ZgGzevJlJkybx22+/ERMTQ5cuXejfvz9W6z8z/ApLeypYFBERERERkQAFK7QVERERERGRS0LBooiIiIiIiARQsCgiIiIiIiIBFCyKiIiIiIhIAAWLIiIiIiIiEkDBooiIiIiIiARQsCgiInIBLVu2jCpVqnDgwAH69etHixYtSEhIuKD3+PLLL6lSpQpVqlShV69eF7RsERGRLAoWRURELpKDBw+SmJhIRkbGBS3Xbrfz9NNPU758+QtaroiIyOmseV0BERGRwmrZsmVkZmYSHR19Qcu96aabAFi9evUFLVdEROR06lkUERE5Dx9++CHdu3enTp061K1blz59+vDtt9/65Rk1ahSdO3f2Hbds2ZJhw4axefNm7rrrLmrVqkXz5s2ZMWMGhmHgcDh48cUXad68OfXq1aNv377s3r37Uj+aiIgIoJ5FERGRc2IYBsOHD2fZsmXUr1+fBx54ALPZzKZNm7jnnnto2LBhrtdv3bqVjz76iBYtWjBgwAC2bNnC1KlTsdvt/Prrr/z555906tQJk8nEokWLuOuuu1i9ejVRUVGX6AlFRES8FCyKiIicg/nz57Ns2TKGDh3Kvffe60u///77+fDDD3niiSdyvX7Xrl08/fTT9OzZ05fWr18/XnvtNcqXL8+KFSt8w1ZvuukmOnbsyKeffsrtt99+UZ5HREQkJxqGKiIicg7mzJlD48aN/QLFLLfeeiu33nprrteXKVOGHj16+KVdf/31GIZB7969/eY3VqtWjcjISP78888LUncREZFzoWBRRETkLCUmJnLo0CFatGiRY56mTZvmWkaVKlUwmUx+aZGRkQBcffXVAfkjIiI4derUedRWRETkv1GwKCIico48Hk+O5/4dCP5bVmB4OovFApDtvESz2Yzb7T7HGoqIiPx3ChZFRETOUtGiRYmPj+ezzz7LMc/69etzLSO3YNJms51v1URERC44BYsiIiLnoE+fPmzatIlp06YFnHv77bdZuXJlHtRKRETkwtNqqCIiIufg7rvv5tdff+WVV17hq6++onnz5jidTr755ht+/fVXmjdvzrp16/K6miIiIv+ZehZFRETOgclkYtKkSYwbNw6Px8OMGTOYN28eMTExLFq0iNatW+d1FUVERC4Ik2EYRl5XQkRERERERPIX9SyKiIiIiIhIAAWLIiIiIiIiEkDBooiIiIiIiARQsCgiIiIiIiIBFCyKiIiIiIhIAAWLIiIiIiIiEkDBooiIiIiIiARQsCgiIiIiIiIBFCyKiIiIiIhIgP8DNKkWuW0N/u0AAAAASUVORK5CYII=\n",
      "text/plain": [
       "<Figure size 1080x720 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# 可视化展示\n",
    "import matplotlib\n",
    "import matplotlib.pyplot as plt\n",
    "import seaborn as sns\n",
    "\n",
    "# 查看哪些中文字体可用\n",
    "#font_list=sorted([f.name for f in matplotlib.font_manager.fontManager.ttflist])\n",
    "#for i in font_list:\n",
    "    #print(i)\n",
    "plt.rcParams['font.sans-serif'] = ['Heiti TC']\n",
    "sns.set(context='talk', font='Heiti TC') \n",
    "#作图\n",
    "plt.figure(figsize=(15, 10))\n",
    "sns.scatterplot(x=\"dim1\", y=\"dim2\",data=tsne_df)\n",
    "for i, txt in enumerate(tsne_df['style_most_name']):\n",
    "    plt.annotate(txt, (tsne_df.dim1[i], tsne_df.dim2[i]))\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "4cbe919a",
   "metadata": {},
   "source": [
    "* 从图中可以看出，很多含义相近的词距离很近，例如中国戏曲/中国传统/越剧。也有少部分离得较远 ，例如中国戏曲和豫剧。\n",
    "* 整体上bert-embeddin+tsne能相对完整的体现风格的关系"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "20028f50",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "10753"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#释放内存\n",
    "del temp_df\n",
    "import gc\n",
    "gc.collect()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "3f7fe50b",
   "metadata": {},
   "source": [
    "## 2.2.Kmeans用户聚类"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "f8197ecb",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>day_max</th>\n",
       "      <th>day_len</th>\n",
       "      <th>channel_most</th>\n",
       "      <th>channel_unique</th>\n",
       "      <th>actions_unique</th>\n",
       "      <th>pages_unique</th>\n",
       "      <th>pages_len</th>\n",
       "      <th>music_ids_unique</th>\n",
       "      <th>artist_id_unique</th>\n",
       "      <th>is_paid_sum</th>\n",
       "      <th>...</th>\n",
       "      <th>dim2</th>\n",
       "      <th>channel_most_day</th>\n",
       "      <th>channel_unique_day</th>\n",
       "      <th>actions_unique_day</th>\n",
       "      <th>pages_unique_day</th>\n",
       "      <th>pages_len_day</th>\n",
       "      <th>music_ids_unique_day</th>\n",
       "      <th>artist_id_unique_day</th>\n",
       "      <th>is_paid_sum_day</th>\n",
       "      <th>comment_cnt_sum_day</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>-3.660746</td>\n",
       "      <td>-1.174037</td>\n",
       "      <td>-0.104668</td>\n",
       "      <td>-0.775998</td>\n",
       "      <td>0.186513</td>\n",
       "      <td>0.468209</td>\n",
       "      <td>-0.274499</td>\n",
       "      <td>-0.472849</td>\n",
       "      <td>-0.451873</td>\n",
       "      <td>-0.329195</td>\n",
       "      <td>...</td>\n",
       "      <td>0.028378</td>\n",
       "      <td>0.793705</td>\n",
       "      <td>2.570896</td>\n",
       "      <td>4.611555</td>\n",
       "      <td>6.579855</td>\n",
       "      <td>0.193749</td>\n",
       "      <td>1.930478</td>\n",
       "      <td>2.582062</td>\n",
       "      <td>0.246940</td>\n",
       "      <td>-0.599733</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>-1.638309</td>\n",
       "      <td>-1.030480</td>\n",
       "      <td>-0.104668</td>\n",
       "      <td>-0.775998</td>\n",
       "      <td>-1.168403</td>\n",
       "      <td>-1.481938</td>\n",
       "      <td>-0.289385</td>\n",
       "      <td>-0.631862</td>\n",
       "      <td>-0.642033</td>\n",
       "      <td>-0.346504</td>\n",
       "      <td>...</td>\n",
       "      <td>0.028378</td>\n",
       "      <td>0.221017</td>\n",
       "      <td>0.721552</td>\n",
       "      <td>-0.027853</td>\n",
       "      <td>-0.166583</td>\n",
       "      <td>-0.344313</td>\n",
       "      <td>-0.506824</td>\n",
       "      <td>-0.220499</td>\n",
       "      <td>-0.375019</td>\n",
       "      <td>0.218048</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0.721200</td>\n",
       "      <td>0.835765</td>\n",
       "      <td>-0.104668</td>\n",
       "      <td>0.588331</td>\n",
       "      <td>0.186513</td>\n",
       "      <td>-0.181840</td>\n",
       "      <td>0.105077</td>\n",
       "      <td>-0.572232</td>\n",
       "      <td>-0.584985</td>\n",
       "      <td>-0.251302</td>\n",
       "      <td>...</td>\n",
       "      <td>0.028378</td>\n",
       "      <td>-0.275314</td>\n",
       "      <td>-0.634633</td>\n",
       "      <td>-0.584581</td>\n",
       "      <td>-0.744849</td>\n",
       "      <td>-0.000978</td>\n",
       "      <td>-0.835964</td>\n",
       "      <td>-0.808690</td>\n",
       "      <td>-0.490832</td>\n",
       "      <td>-0.592525</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0.721200</td>\n",
       "      <td>0.117978</td>\n",
       "      <td>-0.498794</td>\n",
       "      <td>0.588331</td>\n",
       "      <td>-1.168403</td>\n",
       "      <td>-1.481938</td>\n",
       "      <td>-0.280453</td>\n",
       "      <td>-0.641801</td>\n",
       "      <td>-0.756129</td>\n",
       "      <td>-0.335686</td>\n",
       "      <td>...</td>\n",
       "      <td>0.028378</td>\n",
       "      <td>-0.305857</td>\n",
       "      <td>-0.388053</td>\n",
       "      <td>-0.770158</td>\n",
       "      <td>-0.937604</td>\n",
       "      <td>-0.510344</td>\n",
       "      <td>-0.869295</td>\n",
       "      <td>-0.926329</td>\n",
       "      <td>-0.576619</td>\n",
       "      <td>-0.610911</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0.552664</td>\n",
       "      <td>-0.312694</td>\n",
       "      <td>-0.761544</td>\n",
       "      <td>-0.775998</td>\n",
       "      <td>-1.168403</td>\n",
       "      <td>-1.481938</td>\n",
       "      <td>-0.295339</td>\n",
       "      <td>-0.691493</td>\n",
       "      <td>-0.775145</td>\n",
       "      <td>-0.350832</td>\n",
       "      <td>...</td>\n",
       "      <td>-3.153165</td>\n",
       "      <td>-0.351672</td>\n",
       "      <td>-0.599407</td>\n",
       "      <td>-0.690625</td>\n",
       "      <td>-0.854995</td>\n",
       "      <td>-0.526596</td>\n",
       "      <td>-0.926433</td>\n",
       "      <td>-0.947088</td>\n",
       "      <td>-0.586423</td>\n",
       "      <td>-0.601890</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 22 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "    day_max   day_len  channel_most  channel_unique  actions_unique  \\\n",
       "0 -3.660746 -1.174037     -0.104668       -0.775998        0.186513   \n",
       "1 -1.638309 -1.030480     -0.104668       -0.775998       -1.168403   \n",
       "2  0.721200  0.835765     -0.104668        0.588331        0.186513   \n",
       "3  0.721200  0.117978     -0.498794        0.588331       -1.168403   \n",
       "4  0.552664 -0.312694     -0.761544       -0.775998       -1.168403   \n",
       "\n",
       "   pages_unique  pages_len  music_ids_unique  artist_id_unique  is_paid_sum  \\\n",
       "0      0.468209  -0.274499         -0.472849         -0.451873    -0.329195   \n",
       "1     -1.481938  -0.289385         -0.631862         -0.642033    -0.346504   \n",
       "2     -0.181840   0.105077         -0.572232         -0.584985    -0.251302   \n",
       "3     -1.481938  -0.280453         -0.641801         -0.756129    -0.335686   \n",
       "4     -1.481938  -0.295339         -0.691493         -0.775145    -0.350832   \n",
       "\n",
       "   ...      dim2  channel_most_day  channel_unique_day  actions_unique_day  \\\n",
       "0  ...  0.028378          0.793705            2.570896            4.611555   \n",
       "1  ...  0.028378          0.221017            0.721552           -0.027853   \n",
       "2  ...  0.028378         -0.275314           -0.634633           -0.584581   \n",
       "3  ...  0.028378         -0.305857           -0.388053           -0.770158   \n",
       "4  ... -3.153165         -0.351672           -0.599407           -0.690625   \n",
       "\n",
       "   pages_unique_day  pages_len_day  music_ids_unique_day  \\\n",
       "0          6.579855       0.193749              1.930478   \n",
       "1         -0.166583      -0.344313             -0.506824   \n",
       "2         -0.744849      -0.000978             -0.835964   \n",
       "3         -0.937604      -0.510344             -0.869295   \n",
       "4         -0.854995      -0.526596             -0.926433   \n",
       "\n",
       "   artist_id_unique_day  is_paid_sum_day  comment_cnt_sum_day  \n",
       "0              2.582062         0.246940            -0.599733  \n",
       "1             -0.220499        -0.375019             0.218048  \n",
       "2             -0.808690        -0.490832            -0.592525  \n",
       "3             -0.926329        -0.576619            -0.610911  \n",
       "4             -0.947088        -0.586423            -0.601890  \n",
       "\n",
       "[5 rows x 22 columns]"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#构建用户特征数据\n",
    "#补充日期特征\n",
    "user_behavior_seq_df['day_max']=user_behavior_seq_df['day'].map(max)\n",
    "user_behavior_seq_df['day_len']=user_behavior_seq_df['day'].map(len)\n",
    "user_behavior_seq_df['channel_most']=user_behavior_seq_df['channel_most'].map(int)\n",
    "#合并\n",
    "user_f_df=user_behavior_seq_df.loc[:,['device_id','day_max','day_len','channel_most','channel_unique',\n",
    "                                'actions_unique','pages_unique','pages_len',\n",
    "                                'music_ids_unique','artist_id_unique',\n",
    "                                'is_paid_sum','comment_cnt_sum','style_most_name']]\n",
    "user_f_df=pd.merge(user_f_df,tsne_df,how='left', on='style_most_name',sort=False)\n",
    "#计算日均值\n",
    "x_list=list(user_f_df.columns)\n",
    "x_list.remove('device_id')\n",
    "x_list.remove('day_max')\n",
    "x_list.remove('day_len')\n",
    "x_list.remove('style_most_name')\n",
    "x_list.remove('dim1')\n",
    "x_list.remove('dim2')\n",
    "for x in x_list:\n",
    "    #print(x)\n",
    "    user_f_df[x+'_day']=user_f_df[x]/user_f_df['day_len']\n",
    "\n",
    "#标准化\n",
    "from sklearn import preprocessing\n",
    "x_df=pd.DataFrame(preprocessing.scale(user_f_df.drop(['device_id','style_most_name'],axis=1)))\n",
    "x_list=list(user_f_df.drop(['device_id','style_most_name'],axis=1).columns)\n",
    "x_df.columns=x_list\n",
    "x_df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "c6aaa2e4",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>channel_most_0</th>\n",
       "      <th>channel_most_1</th>\n",
       "      <th>channel_most_2</th>\n",
       "      <th>channel_most_3</th>\n",
       "      <th>channel_most_5</th>\n",
       "      <th>channel_most_6</th>\n",
       "      <th>channel_most_8</th>\n",
       "      <th>channel_most_9</th>\n",
       "      <th>channel_most_11</th>\n",
       "      <th>channel_most_12</th>\n",
       "      <th>...</th>\n",
       "      <th>pages_most_45</th>\n",
       "      <th>pages_most_47</th>\n",
       "      <th>actions_most_1</th>\n",
       "      <th>actions_most_2</th>\n",
       "      <th>actions_most_3</th>\n",
       "      <th>actions_most_4</th>\n",
       "      <th>actions_most_5</th>\n",
       "      <th>actions_most_6</th>\n",
       "      <th>actions_most_7</th>\n",
       "      <th>actions_most_8</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 57 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "   channel_most_0  channel_most_1  channel_most_2  channel_most_3  \\\n",
       "0               0               0               0               0   \n",
       "1               0               0               0               0   \n",
       "2               0               0               0               0   \n",
       "3               0               0               1               0   \n",
       "4               1               0               0               0   \n",
       "\n",
       "   channel_most_5  channel_most_6  channel_most_8  channel_most_9  \\\n",
       "0               1               0               0               0   \n",
       "1               1               0               0               0   \n",
       "2               1               0               0               0   \n",
       "3               0               0               0               0   \n",
       "4               0               0               0               0   \n",
       "\n",
       "   channel_most_11  channel_most_12  ...  pages_most_45  pages_most_47  \\\n",
       "0                0                0  ...              0              0   \n",
       "1                0                0  ...              0              0   \n",
       "2                0                0  ...              0              0   \n",
       "3                0                0  ...              0              0   \n",
       "4                0                0  ...              0              0   \n",
       "\n",
       "   actions_most_1  actions_most_2  actions_most_3  actions_most_4  \\\n",
       "0               1               0               0               0   \n",
       "1               1               0               0               0   \n",
       "2               1               0               0               0   \n",
       "3               1               0               0               0   \n",
       "4               1               0               0               0   \n",
       "\n",
       "   actions_most_5  actions_most_6  actions_most_7  actions_most_8  \n",
       "0               0               0               0               0  \n",
       "1               0               0               0               0  \n",
       "2               0               0               0               0  \n",
       "3               0               0               0               0  \n",
       "4               0               0               0               0  \n",
       "\n",
       "[5 rows x 57 columns]"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#类别特征：使用onehot处理\n",
    "onehot_df = pd.get_dummies(user_behavior_seq_df[['channel_most','pages_most','actions_most']],columns=['channel_most','pages_most','actions_most'])\n",
    "onehot_df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "c2a1e5f3",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>device_id</th>\n",
       "      <th>day_max</th>\n",
       "      <th>day_len</th>\n",
       "      <th>channel_most</th>\n",
       "      <th>channel_unique</th>\n",
       "      <th>actions_unique</th>\n",
       "      <th>pages_unique</th>\n",
       "      <th>pages_len</th>\n",
       "      <th>music_ids_unique</th>\n",
       "      <th>artist_id_unique</th>\n",
       "      <th>...</th>\n",
       "      <th>pages_most_45</th>\n",
       "      <th>pages_most_47</th>\n",
       "      <th>actions_most_1</th>\n",
       "      <th>actions_most_2</th>\n",
       "      <th>actions_most_3</th>\n",
       "      <th>actions_most_4</th>\n",
       "      <th>actions_most_5</th>\n",
       "      <th>actions_most_6</th>\n",
       "      <th>actions_most_7</th>\n",
       "      <th>actions_most_8</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2452</td>\n",
       "      <td>-3.660746</td>\n",
       "      <td>-1.174037</td>\n",
       "      <td>-0.104668</td>\n",
       "      <td>-0.775998</td>\n",
       "      <td>0.186513</td>\n",
       "      <td>0.468209</td>\n",
       "      <td>-0.274499</td>\n",
       "      <td>-0.472849</td>\n",
       "      <td>-0.451873</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>7181</td>\n",
       "      <td>-1.638309</td>\n",
       "      <td>-1.030480</td>\n",
       "      <td>-0.104668</td>\n",
       "      <td>-0.775998</td>\n",
       "      <td>-1.168403</td>\n",
       "      <td>-1.481938</td>\n",
       "      <td>-0.289385</td>\n",
       "      <td>-0.631862</td>\n",
       "      <td>-0.642033</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>8685</td>\n",
       "      <td>0.721200</td>\n",
       "      <td>0.835765</td>\n",
       "      <td>-0.104668</td>\n",
       "      <td>0.588331</td>\n",
       "      <td>0.186513</td>\n",
       "      <td>-0.181840</td>\n",
       "      <td>0.105077</td>\n",
       "      <td>-0.572232</td>\n",
       "      <td>-0.584985</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>9219</td>\n",
       "      <td>0.721200</td>\n",
       "      <td>0.117978</td>\n",
       "      <td>-0.498794</td>\n",
       "      <td>0.588331</td>\n",
       "      <td>-1.168403</td>\n",
       "      <td>-1.481938</td>\n",
       "      <td>-0.280453</td>\n",
       "      <td>-0.641801</td>\n",
       "      <td>-0.756129</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>9529</td>\n",
       "      <td>0.552664</td>\n",
       "      <td>-0.312694</td>\n",
       "      <td>-0.761544</td>\n",
       "      <td>-0.775998</td>\n",
       "      <td>-1.168403</td>\n",
       "      <td>-1.481938</td>\n",
       "      <td>-0.295339</td>\n",
       "      <td>-0.691493</td>\n",
       "      <td>-0.775145</td>\n",
       "      <td>...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 80 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "   device_id   day_max   day_len  channel_most  channel_unique  \\\n",
       "0       2452 -3.660746 -1.174037     -0.104668       -0.775998   \n",
       "1       7181 -1.638309 -1.030480     -0.104668       -0.775998   \n",
       "2       8685  0.721200  0.835765     -0.104668        0.588331   \n",
       "3       9219  0.721200  0.117978     -0.498794        0.588331   \n",
       "4       9529  0.552664 -0.312694     -0.761544       -0.775998   \n",
       "\n",
       "   actions_unique  pages_unique  pages_len  music_ids_unique  \\\n",
       "0        0.186513      0.468209  -0.274499         -0.472849   \n",
       "1       -1.168403     -1.481938  -0.289385         -0.631862   \n",
       "2        0.186513     -0.181840   0.105077         -0.572232   \n",
       "3       -1.168403     -1.481938  -0.280453         -0.641801   \n",
       "4       -1.168403     -1.481938  -0.295339         -0.691493   \n",
       "\n",
       "   artist_id_unique  ...  pages_most_45  pages_most_47  actions_most_1  \\\n",
       "0         -0.451873  ...              0              0               1   \n",
       "1         -0.642033  ...              0              0               1   \n",
       "2         -0.584985  ...              0              0               1   \n",
       "3         -0.756129  ...              0              0               1   \n",
       "4         -0.775145  ...              0              0               1   \n",
       "\n",
       "   actions_most_2  actions_most_3  actions_most_4  actions_most_5  \\\n",
       "0               0               0               0               0   \n",
       "1               0               0               0               0   \n",
       "2               0               0               0               0   \n",
       "3               0               0               0               0   \n",
       "4               0               0               0               0   \n",
       "\n",
       "   actions_most_6  actions_most_7  actions_most_8  \n",
       "0               0               0               0  \n",
       "1               0               0               0  \n",
       "2               0               0               0  \n",
       "3               0               0               0  \n",
       "4               0               0               0  \n",
       "\n",
       "[5 rows x 80 columns]"
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#拼接\n",
    "x_df=pd.concat([user_f_df.loc[:,'device_id'],x_df,onehot_df], axis=1)\n",
    "x_df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "33189826",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "For n_clusters = 3 The average silhouette_score is : 0.5933289869015085\n",
      "For n_clusters = 4 The average silhouette_score is : 0.5762863817307868\n",
      "For n_clusters = 5 The average silhouette_score is : 0.5643884189441813\n",
      "For n_clusters = 6 The average silhouette_score is : 0.5586307741537836\n",
      "For n_clusters = 7 The average silhouette_score is : 0.5540408081937437\n",
      "For n_clusters = 8 The average silhouette_score is : 0.5492803533463748\n",
      "For n_clusters = 9 The average silhouette_score is : 0.545607936352122\n",
      "For n_clusters = 10 The average silhouette_score is : 0.5443935193396965\n",
      "For n_clusters = 11 The average silhouette_score is : 0.5431810255419889\n",
      "For n_clusters = 12 The average silhouette_score is : 0.5445594163442459\n",
      "For n_clusters = 13 The average silhouette_score is : 0.5389012210543301\n",
      "For n_clusters = 14 The average silhouette_score is : 0.5394959825538822\n",
      "For n_clusters = 15 The average silhouette_score is : 0.5373640992367305\n"
     ]
    }
   ],
   "source": [
    "#kmeans聚类\n",
    "#使用silhouette选择聚类的数目\n",
    "from sklearn.cluster import KMeans\n",
    "from sklearn.metrics import silhouette_samples, silhouette_score\n",
    "#分别创建分群3-15的KMeans模型\n",
    "clusters = range(3,16)\n",
    "sc_scores = []\n",
    "for k in clusters:  \n",
    "    kmeans_model = KMeans(n_clusters=k).fit(x_df)\n",
    "    sc_score = silhouette_score(x_df, kmeans_model.labels_,sample_size=60000, metric='euclidean')\n",
    "    sc_scores.append(sc_score)\n",
    "    print(\"For n_clusters =\",k,\"The average silhouette_score is :\", sc_score)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "f34386cb",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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XB67atUqvfvuu3r22WfVsWNHPfzww8dcFnvNNdfo+++/1xNPPKFhw4YdNRRIkpYtW6b4+PjagClJDodD48eP13fffVdnyNy2bZsSEhKOCZh1+fDDD1VSUqKbbrqpwXOBpnDhkHgtWb9f+cWVmvPdTt11WR+zSwIAAAAaTYNbmHz//feqqKhQcXGxHnroIT344IN666235HA4tH37dmVmZqpXr161l8hu3bpVI0eO1IEDBzRnzpxjvl5WVlad914mJiZq9+7dddawbds2paenKzU1VWPGjNHzzz8vt9t9zHllZWX6+9//rrvuuouhQ2g2Alx2XXX4MtmVW3O0PbPA3IIAAACARtTgFJLXX39dDz74oF5++WVlZGSooqJCTz75pJKTk3XrrbeqqKhIPp9PV155pcaPH68tW7YoJydHF154oVJTU4/5euXl5XXedxkeHq7y8vI6a+jevbvGjh2rmJgYZWZmavr06Tp48KCmTZt21Hlvv/22goKCNGHChBN8+fULD+eyRqtxOOySmr635w/tqm/X7tWOrELN+W6nnr7rbLY0aQRm9ReNj95aG/21LnprbfQXx9NgyHzhhRf02WefKSAgQFLNSmTHjh315JNP1nwBR82XuPLKK/XRRx8pIyNDjz322HGDXlBQkEpKSo45XlBQoKCguv+A3nnnnbW/7tevn2JiYjRhwgRNnTpV7dq1kyQdOnRIb731lp544gk5nc6GXhbQpGw2Qzdd3FsPzVimnXsLtWjNXp0zKNbssgAAAAC/qzdkfvrpp9q9e7dsNpu++uorGYahpUuXqnv37nrhhRd0wQUXqFOnTnI4HLr11ls1ePBgXXvttXr11Vf1i1/8QqGhocd8zdjYWK1YseKY4+np6fVuYfJz3bt3l1SzxcqRkDljxgzFx8froosuOqGvcSIKC+teWUXLdeSTNjN62ykiSKm9orV8S45mL9ii3nHhCnSxpYk/mdlfNC56a23017rorbXRX2uLjDw2y52oeu/J3L9/v77++mstXrxYixcvltfr1fz58/X999/rp59+0j//+U9dfPHFkmoug92yZYvOPfdcBQUFaebMmXV+zaFDh2r79u3atWtX7bGqqirNmzevzmm0N998s2bMmHHUsSVLlshut6tLly6SpL179+of//iH7rvvvhMaDgSY5arR3eR02FRQ4ta/fswwuxwA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fsrMzNTs2bP1xBNPmFwh/OWxxx7Tjh071LdvX7NLgZ/96U9/UmhoqO677z6zS4Gf5Ofna+XKlfr000/Vu3dvSVLfvn01aNAgrVixQueee67JFeJkJSQkKCcn56hj1dXVmjFjhu68805dffXVkqRevXopKytLL774ombPnm1GqTgFdfVXkv7+97/rtttu04033iip5vvY4/HozTff1DXXXNPEVeJUHa+/P/fxxx/r008/VUxMTBNVBX9oqLcff/yxli1bpk8//VQOR8MRkpXMww4dOqSzzz5bKSkpRx1PTExUdna2SVXB3z766CPNnz+/9odVWMc333yjL774Qs8884wCAgLMLgd+Eh4erh49emjGjBnKzs5WWVmZXnvtNZWUlCgiIsLs8uAnW7duVX5+vsaPH3/U8SuvvFIrV65USUmJSZXBH9xut2JiYnT++ecfdTwxMbHBwIKWJS0tTU8++aQGDBhgdinwowMHDmjatGm699571a1btxN6DiHzsH79+umtt96SYRi1xzwej7799lv169fPxMrgL2lpaXrqqad0//33N3gvAVqW4uJiPfLIIzIMQ5MnT9Yll1yiZcuWmV0W/MBms+nVV1/V0qVLNXLkSA0YMEDTp0/X5MmTNXDgQLPLg59kZWUpMDBQHTp0OOp4YmKifD6fMjIyTKoM/uByufTuu++qR48eRx3/+uuv+RnLQsrKyjRlyhSNGjWK1WmLeeSRR1RcXKy//e1vGjlypGbOnNngcwiZ9XjyySdVXl6uG264wexScJqOvPGNHj1a119/vdnlwM/+9re/qbKyUo8++qhef/119evXT7fffjs/mFpAWVmZ7r77bsXHx+vvf/+7Zs+erSuuuEL5+flyu91mlwc/KS8vr3NlOjw8XFLNnwNYy+eff6558+bpnnvuMbsU+Mljjz2m6upq/elPfzK7FPjRt99+q8WLF+uOO+7Q//3f/2nSpEl67rnn9Pnnn9f7PO7JPI4XX3xR8+bN08yZM9WmTRuzy8FpOvLG99RTT5ldCvysurpac+bM0f3336+rrrpKkjRo0CClp6dr1qxZ+uMf/2hyhTgdH330kfLy8vSvf/1LYWFhkqTBgwfrrrvu0vPPP68HH3zQ5ArhD0FBQaqoqDjmeEFBgSQpODi4iStCY1q0aJEeeOABPfDAA+rfv7/Z5cAP5syZowULFuif//ynQkNDzS4HfvTBBx/o0ksvrf1AaMCAASouLtbrr7+uSy655LjPI2TW4a233tIbb7yhV199VcnJyWaXg9M0Z84cffbZZzIMQ6mpqZIkr9crqebTmZ9++snM8nCaDh06pOLi4mO+V5OTk5WWlmZSVfCXHTt2aODAgbUB84ihQ4fqgw8+MKkq+FtsbKwKCgpUWFhYu3opSenp6TIMQ3FxcSZWB39auXKl7r77bt1yyy2aOHGi2eXAD7Zv366nnnpKlZWVuvLKKyVJPp9PXq9XvXv31ieffKKkpCSTq8Sp2rNnzzFXdQ4YMEBvv/12vc8jZP6POXPm6Pnnn9dzzz2nUaNGmV0O/CA1NfWYJf0XX3xRkphCagGRkZEKCQnRhg0bdMYZZ9QeX79+vbp3725iZfCHmJgY/fTTT6qqqjpqmt2aNWvUrl07EyuDPyUlJalt27b66quvjrqX65NPPlFKSgorIxaxadMm3X777briiiu4TNZCIiIiNGfOnKOOLVy4UO+//77efPNNxcfHm1QZ/CE+Pl4bNmw46ti6desanB5MyPyZ+fPn65FHHtGkSZOUlJRUu5m73W5X165dzS0Op6yuN7cjl0Cf6IQs/P/27j2m6rqB4/j7HDh4OBxIMBA9iDqjoealsBlOJ6ZrLjcvrJI1h0RSKKFDsXQLvKRy1FleAbW8YJil4rXZkCRNY9NYV09eFtP0eCHJawbHc3n+6Ok8Y/b4iJLW4+e18Qe/7/f3/X1/33/gs+/l9/dlMBgYM2YMdrsdgEceeYRNmzbhcDi0PPr/wPPPP8+6det47bXXGD16NMHBwezcuZNdu3ZRVFR0v7snzSQgIIDMzEzmz59PUFAQ8fHxVFRU8PHHH9/WARPy9/fjjz/y8ssvEx8fz6hRo/z/YwG0a9eOoKCg+9g7uRtRUVFERUU1uvb9999jMpluOuxJ/nnGjBnD6NGjsdlsJCUlUV1dzbvvvvs/994qZP7b3r17ef311/F6vaxZs4Y1a9b4y0JDQ/UxaJG/sczMTMxmM0VFRZw7d45u3bqxdu1aOnbseL+7JncpIiKC9evXM3fuXLKysjAajcTHx7N69Wqeeuqp+909aUZpaWl4PB4WLVrEhQsXiIuLY/ny5SQkJNzvrsldcjqdpKen+797++yzzzYq37p1K507d75PvRORW3nyyScpLi5m4cKFrFy5krZt2zJr1iyGDh16y/sMPp/Pd4/6KCIiIiIiIv/n9AkTERERERERaTYKmSIiIiIiItJsFDJFRERERESk2ShkioiIiIiISLNRyBQREREREZFmo5ApIiIiIiIizUYhU0RE5G/E4/Hc8b3Lli1j8+bNN113OBzs3LmTU6dO3U3XREREbotCpoiISBMcP36c48ePc+rUKU6fPt3o58SJExw5cgSn03nb7dXW1jb6PSUlhWHDhnHjxg0AvF4vK1eu5JdffvnT+w8cOMCkSZPwer3s2LGDkydPUldXR2pqKvv27QOgsrKSSZMmUVNTc4dvLSIicvsC73cHRERE/klmz55NVVXVLeukpqaSlJSE1WrFaDTi8/mor6/HZrNhs9n89TZu3Mi0adMYO3YsWVlZGI1GQkJCMJvNmEwmAJYsWUJhYSE1NTXMmTMHg8HQ6FmXLl1i586dZGVlYbFYMBgMbNu2jZqaGhISEoDfg7HNZqN///7NPBoiIiI3U8gUERFpgsWLF2M0GklISKCkpITevXv7y7p06UJRURHR0dHk5ubSokULAgMDuXjxIqdOnWL37t2N2kpOTubYsWMsXbqUVq1a8eKLLxIQEOBfMltaWkpxcTFTpkzhpZdeuqkvDQ0N9OjRg61btxITE+O/3qdPH5544gncbjder5eqqipCQkLIzc0Ffp8dDQwMZN68eX/FEImIyANOIVNERKQJwsLCaGhoAGDcuHEEBv7nT6nH4yEkJIT27dvjcrmYM2cO3bp1Iycnh7i4OP8sptPp5OzZs1gsFlJSUujevTsJCQmcO3cOl8uFy+Xi3Llz9O3bF7vdzuOPP86xY8f47bffiIiIoF27dgBUVFQwceJEDAYDRqMRj8eDw+GguLgYgNjYWObMmcOlS5fo378/Dz30EHv27MFkMpGUlHRvB05ERB4YCpkiIiJ3qLCw8KaZTACz2czTTz/NxIkTyc7OZt++fWzbts1fb/fu3RQUFNyy7f+2tDUzM5OcnBx/nT179nDlyhUyMzPx+XwMGTKEPn36EBMTg9lsxm6306ZNG+x2O0ajkcOHD9OlSxemTJlyt68vIiLypxQyRURE7tCfzWT+ITc3F4fDweTJk8nMzGy0nHXYsGEMGjSIkJAQgoODCQwMZObMmTidTnw+Hy6Xi/bt2/PDDz9QXFyM2Wymvr6e+vp6LBaLvx2r1cr58+cZP348I0aMoKKiAp/Px9q1azl//jxvvvkmFRUVTJ48GaPx97P+Ll68SGRk5D0YHREReVDpdFkREZE7tHTpUj755BPWr1/P22+/7Q9yHo+HDRs28O2339K3b1+WL19ORkYGW7ZsASA8PJyYmBjCw8MxGo3MnDmTzz77DLvdjtfrxev1kpeXh9Vq5bnnnqO8vByLxUJsbCwPP/wwAC6Xi/nz5zNixAiioqLIysryHxa0dOlS4uPjyc/Pp3Xr1nzxxRfs3bsXr9eL0+lsFHhFRESam2YyRUREmmDq1Kn+02XT0tKA3/dp2mw2vF4vbrebLVu2sGjRIt555x2SkpIoLy+noKAAt9vdqK2qqioKCgq4cuUKJSUlREZG+mcszWYzq1atYsmSJcyePZsZM2bQvXt3kpKSyMjIICgoiMcee4zExEQWLFjAgQMHiI+P55lnnsFsNjN//nxWrFjBo48+ysKFC6mrq+P06dM0NDTQqVOnez1sIiLyAFHIFBERaYLevXsTFRVFx44dadOmDVFRUZhMJurq6liwYAFff/01oaGhDBo0iB07drB8+XJOnjxJVlYWw4cPB+Ds2bNMmDCBb775hiFDhpCfn0/Lli0B6NChAyaTiWvXrmG1WsnJySEtLY3t27dTUVFBbGysvy99+vShZ8+euN1u9uzZw+7du5kwYQK//vorbrebwYMHExsby0cffcSZM2f46quvMJlMdOzY8T6MnIiIPCgMPp/Pd787ISIi8k8ydepUysrKAAgICCAsLIzw8HAuX75MQEAAAwYMIDw8HKvVSkREBG3btiUsLIyuXbsCcOLECcrLy7HZbPTq1QuTyeTf29mvXz8SExOZO3cuPp8Pj8eD2+2moaGB69evYzKZ/DORH3zwAdOnT/f3KyAgAGi8N/To0aMsXryY6upqWrduzZkzZ3j//ffvxTCJiMgDSiFTRESkia5evcr169dZtGgRPXr0YOTIkQDk5+fjdDp57733APyH7qSnp5Odne2/f8qUKf79mU01cOBACgsLAaivr8fn81FVVcUbb7xBZWUlVquVFStWsHnzZjZt2kRoaCiHDh0iPT0dk8lEdnb2n35zU0REpLlouayIiEgThYaGcvXqVcrKyoiKivqv9fbv34/BYCA1NbXR9QkTJjBu3DiCg4MJDg4mKCgIt9vNqFGjaNmyJVOnTiUlJYX169fTqVMnGhoa/DOZBoPB347ZbAZg1apVtGrVim3bttG1a1c2b97M0KFDCQ0NBaBXr15ERkZSW1tLcnLyXzAiIiIi/6HTZUVERO5AUVERFouF0tJSKisrbyqvq6tj+/bt+Hw+srOz+fnnn/1lbdq0ITY2lsjISKxWKxcuXODVV1/F6XSSl5dHXFwcgwYNIiMjg0OHDhESEkJERAQxMTHYbLZGz/F6vWRlZZGSksL+/fsZOXIkJ06c4MiRIzgcDgA2btzI2bNnuXHjBna7natXr/61gyMiIg80hUwREZEm+vTTT9m0aRPLli0jNTWVsWPHUlJS0qjOrFmziIiIYNeuXVy+fJnk5GS+++47f3lDQwPV1dXk5+czZMgQfvrpJ0pLS/2H8kybNo0OHTqQlpbG8OHDKSgooLS0lM8//7zRc65fv05YWBher5eamhoiIyOZPn06tbW1HD58mPHjx5OXl8crr7xCbm4uZWVlJCUlMWPGDFwu118/WCIi8sDRclkREZEmOHr0KBMnTiQ9PZ3ExEQSExNxu90MGDAAh8OBz+fj8OHDHDx4kHnz5hEdHc3q1auZPn060dHRAJSXl5OTk4Pb7cZisZCSksK4ceP8y1sBLBYLa9asYfv27WzYsIF169bh8XgYP348/fr1A8But7N69WoAYmJiGD58OKNHjyY0NJQvv/yS/Px8oqOjKSwsZODAgQDExcWRl5dHQEAAQUFB93j0RETkQaCDf0RERJqourqaHj16+E+E/UN2dja1tbV8+OGHuFyuW4a4t956i86dOzN48GCsVuv/fOa1a9dwOBx06NDBvw/U4/FQVlZGz549iYuLa1T/6NGjHDx4kBdeeIEWLVrc1JbL5SIiIuJ2X1lEROS2KWSKiIiIiIhIs9GeTBEREREREWk2CpkiIiIiIiLSbBQyRUREREREpNkoZIqIiIiIiEizUcgUERERERGRZqOQKSIiIiIiIs3mX8mAcEqMfyZyAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<Figure size 1080x720 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#作出K—平均轮廓系数曲线\n",
    "plt.figure()\n",
    "plt.plot(clusters, sc_scores,marker='o')\n",
    "plt.rcParams['figure.figsize'] = [15,10]\n",
    "plt.xlabel('聚类数',fontsize=18)#数量\n",
    "plt.ylabel('平均轮廓系数',fontsize=18)  #样本平均轮廓系数\n",
    "plt.xticks(fontsize=15)\n",
    "plt.yticks(fontsize=15)\n",
    "plt.xlim(2,16)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5f78f96e",
   "metadata": {},
   "source": [
    "* 从轮廓系数图可以发现，随着聚类数目增加，轮廓系数明显下降，说明各个簇样本离中心越来越远。结合已有文献暂定聚6类。\n",
    "* 由于计算资源有限，未计算所有样本的轮廓系数(silhouette_samples)。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "03bd1acc",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>device_id</th>\n",
       "      <th>day_max</th>\n",
       "      <th>day_len</th>\n",
       "      <th>channel_most</th>\n",
       "      <th>channel_unique</th>\n",
       "      <th>actions_unique</th>\n",
       "      <th>pages_unique</th>\n",
       "      <th>pages_len</th>\n",
       "      <th>music_ids_unique</th>\n",
       "      <th>artist_id_unique</th>\n",
       "      <th>is_paid_sum</th>\n",
       "      <th>comment_cnt_sum</th>\n",
       "      <th>style_most_name</th>\n",
       "      <th>dim1</th>\n",
       "      <th>dim2</th>\n",
       "      <th>channel_most_day</th>\n",
       "      <th>channel_unique_day</th>\n",
       "      <th>actions_unique_day</th>\n",
       "      <th>pages_unique_day</th>\n",
       "      <th>pages_len_day</th>\n",
       "      <th>music_ids_unique_day</th>\n",
       "      <th>artist_id_unique_day</th>\n",
       "      <th>is_paid_sum_day</th>\n",
       "      <th>comment_cnt_sum_day</th>\n",
       "      <th>user_type</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2452</td>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "      <td>5</td>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>4</td>\n",
       "      <td>25</td>\n",
       "      <td>23</td>\n",
       "      <td>17</td>\n",
       "      <td>21.0</td>\n",
       "      <td>2090</td>\n",
       "      <td>流行</td>\n",
       "      <td>-24.092134</td>\n",
       "      <td>-15.032055</td>\n",
       "      <td>5.000000</td>\n",
       "      <td>1.000000</td>\n",
       "      <td>3.000000</td>\n",
       "      <td>4.000000</td>\n",
       "      <td>25.000000</td>\n",
       "      <td>23.000000</td>\n",
       "      <td>17.000000</td>\n",
       "      <td>21.000000</td>\n",
       "      <td>2090.000000</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>7181</td>\n",
       "      <td>16</td>\n",
       "      <td>2</td>\n",
       "      <td>5</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>15</td>\n",
       "      <td>7</td>\n",
       "      <td>7</td>\n",
       "      <td>13.0</td>\n",
       "      <td>306775</td>\n",
       "      <td>流行</td>\n",
       "      <td>-24.092134</td>\n",
       "      <td>-15.032055</td>\n",
       "      <td>2.500000</td>\n",
       "      <td>0.500000</td>\n",
       "      <td>0.500000</td>\n",
       "      <td>0.500000</td>\n",
       "      <td>7.500000</td>\n",
       "      <td>3.500000</td>\n",
       "      <td>3.500000</td>\n",
       "      <td>6.500000</td>\n",
       "      <td>153387.500000</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>8685</td>\n",
       "      <td>30</td>\n",
       "      <td>15</td>\n",
       "      <td>5</td>\n",
       "      <td>2</td>\n",
       "      <td>3</td>\n",
       "      <td>3</td>\n",
       "      <td>280</td>\n",
       "      <td>13</td>\n",
       "      <td>10</td>\n",
       "      <td>57.0</td>\n",
       "      <td>51352</td>\n",
       "      <td>流行</td>\n",
       "      <td>-24.092134</td>\n",
       "      <td>-15.032055</td>\n",
       "      <td>0.333333</td>\n",
       "      <td>0.133333</td>\n",
       "      <td>0.200000</td>\n",
       "      <td>0.200000</td>\n",
       "      <td>18.666667</td>\n",
       "      <td>0.866667</td>\n",
       "      <td>0.666667</td>\n",
       "      <td>3.800000</td>\n",
       "      <td>3423.466667</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>9219</td>\n",
       "      <td>30</td>\n",
       "      <td>10</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>21</td>\n",
       "      <td>6</td>\n",
       "      <td>1</td>\n",
       "      <td>18.0</td>\n",
       "      <td>219</td>\n",
       "      <td>流行</td>\n",
       "      <td>-24.092134</td>\n",
       "      <td>-15.032055</td>\n",
       "      <td>0.200000</td>\n",
       "      <td>0.200000</td>\n",
       "      <td>0.100000</td>\n",
       "      <td>0.100000</td>\n",
       "      <td>2.100000</td>\n",
       "      <td>0.600000</td>\n",
       "      <td>0.100000</td>\n",
       "      <td>1.800000</td>\n",
       "      <td>21.900000</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>9529</td>\n",
       "      <td>29</td>\n",
       "      <td>7</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>11</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>11.0</td>\n",
       "      <td>11836</td>\n",
       "      <td></td>\n",
       "      <td>-70.578026</td>\n",
       "      <td>-34.418716</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>0.142857</td>\n",
       "      <td>0.142857</td>\n",
       "      <td>0.142857</td>\n",
       "      <td>1.571429</td>\n",
       "      <td>0.142857</td>\n",
       "      <td>0.000000</td>\n",
       "      <td>1.571429</td>\n",
       "      <td>1690.857143</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   device_id  day_max  day_len  channel_most  channel_unique  actions_unique  \\\n",
       "0       2452        4        1             5               1               3   \n",
       "1       7181       16        2             5               1               1   \n",
       "2       8685       30       15             5               2               3   \n",
       "3       9219       30       10             2               2               1   \n",
       "4       9529       29        7             0               1               1   \n",
       "\n",
       "   pages_unique  pages_len  music_ids_unique  artist_id_unique  is_paid_sum  \\\n",
       "0             4         25                23                17         21.0   \n",
       "1             1         15                 7                 7         13.0   \n",
       "2             3        280                13                10         57.0   \n",
       "3             1         21                 6                 1         18.0   \n",
       "4             1         11                 1                 0         11.0   \n",
       "\n",
       "   comment_cnt_sum style_most_name       dim1       dim2  channel_most_day  \\\n",
       "0             2090              流行 -24.092134 -15.032055          5.000000   \n",
       "1           306775              流行 -24.092134 -15.032055          2.500000   \n",
       "2            51352              流行 -24.092134 -15.032055          0.333333   \n",
       "3              219              流行 -24.092134 -15.032055          0.200000   \n",
       "4            11836                 -70.578026 -34.418716          0.000000   \n",
       "\n",
       "   channel_unique_day  actions_unique_day  pages_unique_day  pages_len_day  \\\n",
       "0            1.000000            3.000000          4.000000      25.000000   \n",
       "1            0.500000            0.500000          0.500000       7.500000   \n",
       "2            0.133333            0.200000          0.200000      18.666667   \n",
       "3            0.200000            0.100000          0.100000       2.100000   \n",
       "4            0.142857            0.142857          0.142857       1.571429   \n",
       "\n",
       "   music_ids_unique_day  artist_id_unique_day  is_paid_sum_day  \\\n",
       "0             23.000000             17.000000        21.000000   \n",
       "1              3.500000              3.500000         6.500000   \n",
       "2              0.866667              0.666667         3.800000   \n",
       "3              0.600000              0.100000         1.800000   \n",
       "4              0.142857              0.000000         1.571429   \n",
       "\n",
       "   comment_cnt_sum_day  user_type  \n",
       "0          2090.000000          0  \n",
       "1        153387.500000          0  \n",
       "2          3423.466667          0  \n",
       "3            21.900000          0  \n",
       "4          1690.857143          0  "
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# 正式定义模型\n",
    "kmeans_model = KMeans(n_clusters=6).fit(x_df)\n",
    "# 输出类别\n",
    "y = kmeans_model.predict(x_df)\n",
    "#拼接\n",
    "user_f_df['user_type']=y\n",
    "pd.set_option('display.max_columns', None)\n",
    "user_f_df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "id": "dfebd072",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "各类用户数量\n",
      "           device_id\n",
      "user_type           \n",
      "0              30769\n",
      "1              29497\n",
      "2              30471\n",
      "3              29832\n",
      "4              30541\n",
      "5              31482\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th>cv</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>artist_id_unique</th>\n",
       "      <th>mean</th>\n",
       "      <td>0.008362</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>music_ids_unique</th>\n",
       "      <th>mean</th>\n",
       "      <td>0.007224</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>is_paid_sum_day</th>\n",
       "      <th>mean</th>\n",
       "      <td>0.007098</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>pages_len</th>\n",
       "      <th>mean</th>\n",
       "      <td>0.007088</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>is_paid_sum</th>\n",
       "      <th>mean</th>\n",
       "      <td>0.006865</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>comment_cnt_sum</th>\n",
       "      <th>mean</th>\n",
       "      <td>0.006800</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>artist_id_unique_day</th>\n",
       "      <th>mean</th>\n",
       "      <td>0.006466</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>music_ids_unique_day</th>\n",
       "      <th>mean</th>\n",
       "      <td>0.006280</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>pages_len_day</th>\n",
       "      <th>mean</th>\n",
       "      <td>0.006042</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>channel_most_day</th>\n",
       "      <th>mean</th>\n",
       "      <td>0.005360</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>channel_unique_day</th>\n",
       "      <th>mean</th>\n",
       "      <td>0.004916</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>comment_cnt_sum_day</th>\n",
       "      <th>mean</th>\n",
       "      <td>0.004562</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>actions_unique_day</th>\n",
       "      <th>mean</th>\n",
       "      <td>0.004452</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>channel_most</th>\n",
       "      <th>mean</th>\n",
       "      <td>0.004289</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>day_len</th>\n",
       "      <th>mean</th>\n",
       "      <td>0.002511</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>pages_unique_day</th>\n",
       "      <th>mean</th>\n",
       "      <td>0.002365</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>channel_unique</th>\n",
       "      <th>mean</th>\n",
       "      <td>0.002005</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>actions_unique</th>\n",
       "      <th>mean</th>\n",
       "      <td>0.001650</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>pages_unique</th>\n",
       "      <th>mean</th>\n",
       "      <td>0.001387</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>day_max</th>\n",
       "      <th>mean</th>\n",
       "      <td>0.001295</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>dim2</th>\n",
       "      <th>mean</th>\n",
       "      <td>-0.001222</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>dim1</th>\n",
       "      <th>mean</th>\n",
       "      <td>-0.003013</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                 cv\n",
       "artist_id_unique     mean  0.008362\n",
       "music_ids_unique     mean  0.007224\n",
       "is_paid_sum_day      mean  0.007098\n",
       "pages_len            mean  0.007088\n",
       "is_paid_sum          mean  0.006865\n",
       "comment_cnt_sum      mean  0.006800\n",
       "artist_id_unique_day mean  0.006466\n",
       "music_ids_unique_day mean  0.006280\n",
       "pages_len_day        mean  0.006042\n",
       "channel_most_day     mean  0.005360\n",
       "channel_unique_day   mean  0.004916\n",
       "comment_cnt_sum_day  mean  0.004562\n",
       "actions_unique_day   mean  0.004452\n",
       "channel_most         mean  0.004289\n",
       "day_len              mean  0.002511\n",
       "pages_unique_day     mean  0.002365\n",
       "channel_unique       mean  0.002005\n",
       "actions_unique       mean  0.001650\n",
       "pages_unique         mean  0.001387\n",
       "day_max              mean  0.001295\n",
       "dim2                 mean -0.001222\n",
       "dim1                 mean -0.003013"
      ]
     },
     "execution_count": 27,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#分析每类用户的属性\n",
    "print('各类用户数量')\n",
    "print(user_f_df[['user_type','device_id']].groupby([\"user_type\"]).count())\n",
    "#根据变异系数选择哪些变量更具有区分性\n",
    "aggregated = pd.DataFrame(user_f_df.drop(['device_id','style_most_name'],axis=1).groupby('user_type', as_index=False).agg(['mean']))\n",
    "cv_df=pd.DataFrame(aggregated.std()/aggregated.mean())\n",
    "cv_df.columns=list(['cv'])\n",
    "#显示所有列，把行显示设置成最大\n",
    "pd.set_option('display.max_columns', None)\n",
    "#显示所有行，把列显示设置成最大\n",
    "pd.set_option('display.max_rows', None)\n",
    "cv_df=cv_df.sort_values(['cv'], ascending=[False])\n",
    "cv_df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "54069a11",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['artist_id_unique',\n",
       " 'music_ids_unique',\n",
       " 'is_paid_sum_day',\n",
       " 'pages_len',\n",
       " 'is_paid_sum']"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#选择前5个指标\n",
    "var_list=list(range(5))\n",
    "for i in range(5):\n",
    "    var_list[i]=cv_df.index[i][0]\n",
    "var_list"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "id": "651d7a2a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead tr th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe thead tr:last-of-type th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th colspan=\"4\" halign=\"left\">artist_id_unique</th>\n",
       "      <th colspan=\"4\" halign=\"left\">music_ids_unique</th>\n",
       "      <th colspan=\"4\" halign=\"left\">is_paid_sum_day</th>\n",
       "      <th colspan=\"4\" halign=\"left\">pages_len</th>\n",
       "      <th colspan=\"4\" halign=\"left\">is_paid_sum</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th>mean</th>\n",
       "      <th>median</th>\n",
       "      <th>fun_q25</th>\n",
       "      <th>fun_q75</th>\n",
       "      <th>mean</th>\n",
       "      <th>median</th>\n",
       "      <th>fun_q25</th>\n",
       "      <th>fun_q75</th>\n",
       "      <th>mean</th>\n",
       "      <th>median</th>\n",
       "      <th>fun_q25</th>\n",
       "      <th>fun_q75</th>\n",
       "      <th>mean</th>\n",
       "      <th>median</th>\n",
       "      <th>fun_q25</th>\n",
       "      <th>fun_q75</th>\n",
       "      <th>mean</th>\n",
       "      <th>median</th>\n",
       "      <th>fun_q25</th>\n",
       "      <th>fun_q75</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>user_type</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>40.869187</td>\n",
       "      <td>24.0</td>\n",
       "      <td>9.0</td>\n",
       "      <td>53.0</td>\n",
       "      <td>70.609607</td>\n",
       "      <td>40.0</td>\n",
       "      <td>14.0</td>\n",
       "      <td>88.0</td>\n",
       "      <td>15.256389</td>\n",
       "      <td>11.222222</td>\n",
       "      <td>5.600000</td>\n",
       "      <td>19.666667</td>\n",
       "      <td>210.943547</td>\n",
       "      <td>100.0</td>\n",
       "      <td>35.0</td>\n",
       "      <td>244.0</td>\n",
       "      <td>172.763268</td>\n",
       "      <td>80.0</td>\n",
       "      <td>25.0</td>\n",
       "      <td>203.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>40.560498</td>\n",
       "      <td>24.0</td>\n",
       "      <td>8.0</td>\n",
       "      <td>53.0</td>\n",
       "      <td>70.188290</td>\n",
       "      <td>39.0</td>\n",
       "      <td>14.0</td>\n",
       "      <td>88.0</td>\n",
       "      <td>15.082767</td>\n",
       "      <td>11.200000</td>\n",
       "      <td>5.500000</td>\n",
       "      <td>19.500000</td>\n",
       "      <td>208.489474</td>\n",
       "      <td>100.0</td>\n",
       "      <td>34.0</td>\n",
       "      <td>241.0</td>\n",
       "      <td>172.194630</td>\n",
       "      <td>79.0</td>\n",
       "      <td>25.0</td>\n",
       "      <td>200.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>40.670966</td>\n",
       "      <td>24.0</td>\n",
       "      <td>8.0</td>\n",
       "      <td>53.0</td>\n",
       "      <td>70.156739</td>\n",
       "      <td>39.0</td>\n",
       "      <td>14.0</td>\n",
       "      <td>88.0</td>\n",
       "      <td>15.194779</td>\n",
       "      <td>11.307692</td>\n",
       "      <td>5.600000</td>\n",
       "      <td>19.472136</td>\n",
       "      <td>208.612878</td>\n",
       "      <td>100.0</td>\n",
       "      <td>35.0</td>\n",
       "      <td>240.0</td>\n",
       "      <td>172.297857</td>\n",
       "      <td>80.0</td>\n",
       "      <td>25.0</td>\n",
       "      <td>200.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>40.807991</td>\n",
       "      <td>24.0</td>\n",
       "      <td>8.0</td>\n",
       "      <td>53.0</td>\n",
       "      <td>70.806315</td>\n",
       "      <td>39.0</td>\n",
       "      <td>14.0</td>\n",
       "      <td>89.0</td>\n",
       "      <td>15.219147</td>\n",
       "      <td>11.333333</td>\n",
       "      <td>5.500000</td>\n",
       "      <td>19.539263</td>\n",
       "      <td>210.201227</td>\n",
       "      <td>101.0</td>\n",
       "      <td>35.0</td>\n",
       "      <td>242.0</td>\n",
       "      <td>173.011431</td>\n",
       "      <td>81.0</td>\n",
       "      <td>25.0</td>\n",
       "      <td>200.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>41.340886</td>\n",
       "      <td>24.0</td>\n",
       "      <td>9.0</td>\n",
       "      <td>54.0</td>\n",
       "      <td>71.472807</td>\n",
       "      <td>40.0</td>\n",
       "      <td>14.0</td>\n",
       "      <td>90.0</td>\n",
       "      <td>15.282297</td>\n",
       "      <td>11.421053</td>\n",
       "      <td>5.666667</td>\n",
       "      <td>19.640000</td>\n",
       "      <td>207.290069</td>\n",
       "      <td>102.0</td>\n",
       "      <td>36.0</td>\n",
       "      <td>243.0</td>\n",
       "      <td>173.059756</td>\n",
       "      <td>81.0</td>\n",
       "      <td>26.0</td>\n",
       "      <td>202.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>40.333746</td>\n",
       "      <td>24.0</td>\n",
       "      <td>8.0</td>\n",
       "      <td>52.0</td>\n",
       "      <td>70.236294</td>\n",
       "      <td>39.0</td>\n",
       "      <td>14.0</td>\n",
       "      <td>89.0</td>\n",
       "      <td>15.411059</td>\n",
       "      <td>11.200000</td>\n",
       "      <td>5.500000</td>\n",
       "      <td>19.532353</td>\n",
       "      <td>210.845594</td>\n",
       "      <td>99.0</td>\n",
       "      <td>35.0</td>\n",
       "      <td>242.0</td>\n",
       "      <td>175.441268</td>\n",
       "      <td>79.0</td>\n",
       "      <td>25.0</td>\n",
       "      <td>202.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          artist_id_unique                        music_ids_unique         \\\n",
       "                      mean median fun_q25 fun_q75             mean median   \n",
       "user_type                                                                   \n",
       "0                40.869187   24.0     9.0    53.0        70.609607   40.0   \n",
       "1                40.560498   24.0     8.0    53.0        70.188290   39.0   \n",
       "2                40.670966   24.0     8.0    53.0        70.156739   39.0   \n",
       "3                40.807991   24.0     8.0    53.0        70.806315   39.0   \n",
       "4                41.340886   24.0     9.0    54.0        71.472807   40.0   \n",
       "5                40.333746   24.0     8.0    52.0        70.236294   39.0   \n",
       "\n",
       "                          is_paid_sum_day                                  \\\n",
       "          fun_q25 fun_q75            mean     median   fun_q25    fun_q75   \n",
       "user_type                                                                   \n",
       "0            14.0    88.0       15.256389  11.222222  5.600000  19.666667   \n",
       "1            14.0    88.0       15.082767  11.200000  5.500000  19.500000   \n",
       "2            14.0    88.0       15.194779  11.307692  5.600000  19.472136   \n",
       "3            14.0    89.0       15.219147  11.333333  5.500000  19.539263   \n",
       "4            14.0    90.0       15.282297  11.421053  5.666667  19.640000   \n",
       "5            14.0    89.0       15.411059  11.200000  5.500000  19.532353   \n",
       "\n",
       "            pages_len                        is_paid_sum                 \\\n",
       "                 mean median fun_q25 fun_q75        mean median fun_q25   \n",
       "user_type                                                                 \n",
       "0          210.943547  100.0    35.0   244.0  172.763268   80.0    25.0   \n",
       "1          208.489474  100.0    34.0   241.0  172.194630   79.0    25.0   \n",
       "2          208.612878  100.0    35.0   240.0  172.297857   80.0    25.0   \n",
       "3          210.201227  101.0    35.0   242.0  173.011431   81.0    25.0   \n",
       "4          207.290069  102.0    36.0   243.0  173.059756   81.0    26.0   \n",
       "5          210.845594   99.0    35.0   242.0  175.441268   79.0    25.0   \n",
       "\n",
       "                   \n",
       "          fun_q75  \n",
       "user_type          \n",
       "0           203.0  \n",
       "1           200.0  \n",
       "2           200.0  \n",
       "3           200.0  \n",
       "4           202.0  \n",
       "5           202.0  "
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#主要指标的分位数\n",
    "def fun_q25(x):\n",
    "    return x.quantile(0.25)\n",
    "def fun_q75(x):\n",
    "    return x.quantile(0.75)\n",
    "q_df = user_f_df.groupby('user_type', as_index=False)[var_list].agg(['mean','median',fun_q25,fun_q75])\n",
    "q_df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "id": "71ed78f1",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead tr th {\n",
       "        text-align: left;\n",
       "    }\n",
       "\n",
       "    .dataframe thead tr:last-of-type th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th colspan=\"6\" halign=\"left\">count</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <th colspan=\"6\" halign=\"left\">device_id</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>user_type</th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "      <th>3</th>\n",
       "      <th>4</th>\n",
       "      <th>5</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>style_most_name</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th></th>\n",
       "      <td>1039</td>\n",
       "      <td>963</td>\n",
       "      <td>1015</td>\n",
       "      <td>1049</td>\n",
       "      <td>1045</td>\n",
       "      <td>1046</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>FUNK</th>\n",
       "      <td>3</td>\n",
       "      <td>2</td>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "      <td>5</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>R&amp;B</th>\n",
       "      <td>35</td>\n",
       "      <td>27</td>\n",
       "      <td>37</td>\n",
       "      <td>41</td>\n",
       "      <td>45</td>\n",
       "      <td>49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>世界音乐</th>\n",
       "      <td>85</td>\n",
       "      <td>73</td>\n",
       "      <td>76</td>\n",
       "      <td>65</td>\n",
       "      <td>98</td>\n",
       "      <td>69</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>中国传统</th>\n",
       "      <td>4</td>\n",
       "      <td>5</td>\n",
       "      <td>11</td>\n",
       "      <td>8</td>\n",
       "      <td>11</td>\n",
       "      <td>7</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>中国戏曲</th>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>乡村</th>\n",
       "      <td>13</td>\n",
       "      <td>9</td>\n",
       "      <td>17</td>\n",
       "      <td>20</td>\n",
       "      <td>22</td>\n",
       "      <td>11</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>古典</th>\n",
       "      <td>59</td>\n",
       "      <td>46</td>\n",
       "      <td>52</td>\n",
       "      <td>58</td>\n",
       "      <td>53</td>\n",
       "      <td>68</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>古风</th>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>另类</th>\n",
       "      <td>27</td>\n",
       "      <td>31</td>\n",
       "      <td>23</td>\n",
       "      <td>31</td>\n",
       "      <td>27</td>\n",
       "      <td>25</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>后摇</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>布鲁斯</th>\n",
       "      <td>3</td>\n",
       "      <td>3</td>\n",
       "      <td>6</td>\n",
       "      <td>7</td>\n",
       "      <td>9</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>抒情歌曲</th>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>拉丁</th>\n",
       "      <td>76</td>\n",
       "      <td>27</td>\n",
       "      <td>47</td>\n",
       "      <td>45</td>\n",
       "      <td>60</td>\n",
       "      <td>62</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>摇滚</th>\n",
       "      <td>220</td>\n",
       "      <td>230</td>\n",
       "      <td>234</td>\n",
       "      <td>205</td>\n",
       "      <td>247</td>\n",
       "      <td>246</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>教育</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>新世纪</th>\n",
       "      <td>26</td>\n",
       "      <td>35</td>\n",
       "      <td>40</td>\n",
       "      <td>35</td>\n",
       "      <td>37</td>\n",
       "      <td>33</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>朋克</th>\n",
       "      <td>4</td>\n",
       "      <td>5</td>\n",
       "      <td>4</td>\n",
       "      <td>3</td>\n",
       "      <td>6</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>民歌</th>\n",
       "      <td>98</td>\n",
       "      <td>115</td>\n",
       "      <td>114</td>\n",
       "      <td>119</td>\n",
       "      <td>106</td>\n",
       "      <td>101</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>民谣</th>\n",
       "      <td>49</td>\n",
       "      <td>24</td>\n",
       "      <td>36</td>\n",
       "      <td>35</td>\n",
       "      <td>37</td>\n",
       "      <td>49</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>流行</th>\n",
       "      <td>28790</td>\n",
       "      <td>27682</td>\n",
       "      <td>28565</td>\n",
       "      <td>27927</td>\n",
       "      <td>28523</td>\n",
       "      <td>29487</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>爵士</th>\n",
       "      <td>25</td>\n",
       "      <td>23</td>\n",
       "      <td>16</td>\n",
       "      <td>16</td>\n",
       "      <td>24</td>\n",
       "      <td>15</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>独立</th>\n",
       "      <td>5</td>\n",
       "      <td>15</td>\n",
       "      <td>8</td>\n",
       "      <td>10</td>\n",
       "      <td>7</td>\n",
       "      <td>6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>电子</th>\n",
       "      <td>80</td>\n",
       "      <td>59</td>\n",
       "      <td>66</td>\n",
       "      <td>52</td>\n",
       "      <td>66</td>\n",
       "      <td>70</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>舞台</th>\n",
       "      <td>2</td>\n",
       "      <td>4</td>\n",
       "      <td>2</td>\n",
       "      <td>5</td>\n",
       "      <td>5</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>草原风</th>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>3</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>说唱</th>\n",
       "      <td>94</td>\n",
       "      <td>84</td>\n",
       "      <td>78</td>\n",
       "      <td>80</td>\n",
       "      <td>83</td>\n",
       "      <td>101</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>豫剧</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>越剧</th>\n",
       "      <td>4</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>轻音乐</th>\n",
       "      <td>7</td>\n",
       "      <td>5</td>\n",
       "      <td>4</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>金属</th>\n",
       "      <td>6</td>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>3</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>雷鬼</th>\n",
       "      <td>11</td>\n",
       "      <td>16</td>\n",
       "      <td>8</td>\n",
       "      <td>12</td>\n",
       "      <td>13</td>\n",
       "      <td>11</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                    count                                   \n",
       "                device_id                                   \n",
       "user_type               0      1      2      3      4      5\n",
       "style_most_name                                             \n",
       "                     1039    963   1015   1049   1045   1046\n",
       "FUNK                    3      2      4      1      5      2\n",
       "R&B                    35     27     37     41     45     49\n",
       "世界音乐                   85     73     76     65     98     69\n",
       "中国传统                    4      5     11      8     11      7\n",
       "中国戏曲                    1      1      0      0      1      1\n",
       "乡村                     13      9     17     20     22     11\n",
       "古典                     59     46     52     58     53     68\n",
       "古风                      2      2      3      1      1      3\n",
       "另类                     27     31     23     31     27     25\n",
       "后摇                      0      0      1      0      0      0\n",
       "布鲁斯                     3      3      6      7      9      4\n",
       "抒情歌曲                    0      2      1      2      0      1\n",
       "拉丁                     76     27     47     45     60     62\n",
       "摇滚                    220    230    234    205    247    246\n",
       "教育                      0      1      0      0      1      0\n",
       "新世纪                    26     35     40     35     37     33\n",
       "朋克                      4      5      4      3      6      5\n",
       "民歌                     98    115    114    119    106    101\n",
       "民谣                     49     24     36     35     37     49\n",
       "流行                  28790  27682  28565  27927  28523  29487\n",
       "爵士                     25     23     16     16     24     15\n",
       "独立                      5     15      8     10      7      6\n",
       "电子                     80     59     66     52     66     70\n",
       "舞台                      2      4      2      5      5      1\n",
       "草原风                     1      3      1      0      3      5\n",
       "说唱                     94     84     78     80     83    101\n",
       "豫剧                      0      1      0      0      0      0\n",
       "越剧                      4      0      1      0      1      0\n",
       "轻音乐                     7      5      4      2      2      1\n",
       "金属                      6      4      1      3      3      3\n",
       "雷鬼                     11     16      8     12     13     11"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#各类用户的风格\n",
    "pd.pivot_table(user_f_df, index=['style_most_name'], columns = ['user_type'],values=['device_id'], aggfunc= ['count'],fill_value=0)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "53e65e8e",
   "metadata": {},
   "source": [
    "## 2.3.用户聚类小结：\n",
    "* 1.聚类后的6类用户的行为指标，例如30天内收听的歌曲数量，歌手数量，听取歌手的评论数，操作次数等，差异较小。\n",
    "* 2.由于绝大部分用户在听\"流行\"风格的歌曲，所以歌曲风格很难作为用户区分的维度。\n",
    "* 3.聚类的标签仅能作为流失率预测的参考，估计很难起到较大作用。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "id": "793d0991",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "备份完成 \n"
     ]
    }
   ],
   "source": [
    "#备份到本地文件\n",
    "import pickle\n",
    "with open('./user_f_df.pkl', 'wb') as f:\n",
    "    pickle.dump(user_f_df, f)\n",
    "\n",
    "print('备份完成 ')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "id": "c05ebe9f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "14948"
      ]
     },
     "execution_count": 32,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "del onehot_df,x_df\n",
    "import gc\n",
    "gc.collect()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "18be2ec9",
   "metadata": {},
   "source": [
    "# 三.用户流失率预测"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5dae122d",
   "metadata": {},
   "source": [
    "* 使用lightgbm树模型作为流失率预测的基础模型(与论文中的随机森林类似，但一般认为lightgbm泛化能力更好).\n",
    "* 使用[SHAP值](https://blog.csdn.net/qq_41103204/article/details/104896630)分析各个变量对预测的贡献。\n",
    "* 使用LSTM模型，根据用户操作序列预测流失。\n",
    "* 比较两个模型的差异。"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c03489ca",
   "metadata": {},
   "source": [
    "## 3.1.数据整理"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 159,
   "id": "ba49181a",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "读取完成\n"
     ]
    }
   ],
   "source": [
    "#读取pickle文件\n",
    "import pickle\n",
    "df=open('./user_f_df.pkl','rb')#注意此处是rb\n",
    "user_f_df=pickle.load(df)\n",
    "df.close()\n",
    "\n",
    "df=open('./user_behavior_seq_df.pkl','rb')#注意此处是rb\n",
    "user_behavior_seq_df=pickle.load(df)\n",
    "df.close()\n",
    "\n",
    "print('读取完成')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 150,
   "id": "9f94baba",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>device_id</th>\n",
       "      <th>gender</th>\n",
       "      <th>age</th>\n",
       "      <th>device</th>\n",
       "      <th>city</th>\n",
       "      <th>is_vip</th>\n",
       "      <th>topics</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>203724992</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>34</td>\n",
       "      <td>167</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>203709051</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>268</td>\n",
       "      <td>289</td>\n",
       "      <td>1.0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>203685345</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>178</td>\n",
       "      <td>59</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>203650429</td>\n",
       "      <td>0.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>167</td>\n",
       "      <td>270</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>203636013</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>517</td>\n",
       "      <td>91</td>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   device_id  gender  age  device  city  is_vip topics\n",
       "0  203724992     0.0  1.0      34   167     NaN    NaN\n",
       "1  203709051     0.0  1.0     268   289     1.0    NaN\n",
       "2  203685345     0.0  NaN     178    59     NaN    NaN\n",
       "3  203650429     0.0  4.0     167   270     0.0    NaN\n",
       "4  203636013     0.0  1.0     517    91     NaN    NaN"
      ]
     },
     "execution_count": 150,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#用户特征表\n",
    "user_info_df = pd.read_csv('2_user_info.csv', sep='|')\n",
    "user_info_df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 151,
   "id": "5fa767e8",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "loading vocabulary file /Users/zhuochen/.fastNLP/embedding/bert-base-chinese/vocab.txt\n",
      "Load pre-trained BERT parameters from file /Users/zhuochen/.fastNLP/embedding/bert-base-chinese/pytorch_model.bin.\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>topics</th>\n",
       "      <th>vec</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td></td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>抖音热歌#头像/壁纸#日常碎碎念</td>\n",
       "      <td>[-0.7118103, 0.28859672, -0.864484, -0.2267087...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>易烊千玺#王源#王俊凯#王一博#时代少年团</td>\n",
       "      <td>[-0.55862576, 0.44901174, -0.53868216, -0.4665...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>THE9#鹿晗#吴亦凡#张艺兴#华晨宇#周杰伦#薛之谦#易烊千玺#王源#王俊凯#火箭少女10...</td>\n",
       "      <td>[-0.10853262, 0.35731423, -0.8791233, 0.159712...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>THE9#鹿晗#吴亦凡#华晨宇#周杰伦#易烊千玺#王源#王俊凯#火箭少女101#张靓颖#张韶...</td>\n",
       "      <td>[0.07438045, 0.43055856, -0.67160076, 0.081273...</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                              topics  \\\n",
       "0                                                      \n",
       "1                                   抖音热歌#头像/壁纸#日常碎碎念   \n",
       "2                              易烊千玺#王源#王俊凯#王一博#时代少年团   \n",
       "3  THE9#鹿晗#吴亦凡#张艺兴#华晨宇#周杰伦#薛之谦#易烊千玺#王源#王俊凯#火箭少女10...   \n",
       "4  THE9#鹿晗#吴亦凡#华晨宇#周杰伦#易烊千玺#王源#王俊凯#火箭少女101#张靓颖#张韶...   \n",
       "\n",
       "                                                 vec  \n",
       "0                                                  0  \n",
       "1  [-0.7118103, 0.28859672, -0.864484, -0.2267087...  \n",
       "2  [-0.55862576, 0.44901174, -0.53868216, -0.4665...  \n",
       "3  [-0.10853262, 0.35731423, -0.8791233, 0.159712...  \n",
       "4  [0.07438045, 0.43055856, -0.67160076, 0.081273...  "
      ]
     },
     "execution_count": 151,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#topics转化为词向量\n",
    "user_info_df['topics'].fillna('', inplace=True)\n",
    "topics_list=list(set(user_info_df['topics']))\n",
    "#print(topics_list)\n",
    "import torch\n",
    "from fastNLP import Vocabulary\n",
    "from fastNLP.embeddings import BertEmbedding\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "#初始化\n",
    "vocab = Vocabulary()\n",
    "embed = BertEmbedding(vocab, model_dir_or_name='cn-base', requires_grad=False)\n",
    "#循环\n",
    "def fun_embed(x):\n",
    "    if len(x)>1:\n",
    "        words = torch.LongTensor([[vocab.to_index(word) for word in x.split('#')]])\n",
    "        y=np.array(embed(words).numpy().mean(axis=0)).mean(axis=0)\n",
    "    else:\n",
    "        y=0\n",
    "    return y\n",
    "vec=list(map(fun_embed,topics_list))\n",
    "topics_df=pd.DataFrame({'topics':topics_list,'vec':vec})\n",
    "topics_df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "6611b5ee",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "my_bar: 100%|██████████| 2918/2918 [00:01<00:00, 1471.19it/s]\n"
     ]
    }
   ],
   "source": [
    "#tsne计算\n",
    "#转成常见的样本*特征格式\n",
    "n=768#fastnlp的词向量维度\n",
    "x_index=list(['x' + str(j) for j in range(n)])\n",
    "from tqdm import tqdm\n",
    "tqdm.pandas(desc='my_bar')\n",
    "temp_df=topics_df['vec'].progress_apply(pd.Series,index=x_index)\n",
    "from sklearn.manifold import TSNE\n",
    "X_embedded = TSNE(n_components=2,init='pca').fit_transform(np.array(temp_df))\n",
    "tsne_df = pd.DataFrame({'dim1':X_embedded[:,0],\n",
    "                        'dim2':X_embedded[:,1],\n",
    "                        'topics':topics_df['topics']},index = topics_df.index)\n",
    "tsne_df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 154,
   "id": "bdb3155d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>device_id</th>\n",
       "      <th>gender</th>\n",
       "      <th>age</th>\n",
       "      <th>device</th>\n",
       "      <th>city</th>\n",
       "      <th>is_vip</th>\n",
       "      <th>topics</th>\n",
       "      <th>dim1</th>\n",
       "      <th>dim2</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>203724992</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>34</td>\n",
       "      <td>167</td>\n",
       "      <td>NaN</td>\n",
       "      <td></td>\n",
       "      <td>31.879169</td>\n",
       "      <td>10.558841</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>203709051</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>268</td>\n",
       "      <td>289</td>\n",
       "      <td>1.0</td>\n",
       "      <td></td>\n",
       "      <td>31.879169</td>\n",
       "      <td>10.558841</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>203685345</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>178</td>\n",
       "      <td>59</td>\n",
       "      <td>NaN</td>\n",
       "      <td></td>\n",
       "      <td>31.879169</td>\n",
       "      <td>10.558841</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>203650429</td>\n",
       "      <td>0.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>167</td>\n",
       "      <td>270</td>\n",
       "      <td>0.0</td>\n",
       "      <td></td>\n",
       "      <td>31.879169</td>\n",
       "      <td>10.558841</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>203636013</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>517</td>\n",
       "      <td>91</td>\n",
       "      <td>NaN</td>\n",
       "      <td></td>\n",
       "      <td>31.879169</td>\n",
       "      <td>10.558841</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   device_id  gender  age  device  city  is_vip topics       dim1       dim2\n",
       "0  203724992     0.0  1.0      34   167     NaN         31.879169  10.558841\n",
       "1  203709051     0.0  1.0     268   289     1.0         31.879169  10.558841\n",
       "2  203685345     0.0  NaN     178    59     NaN         31.879169  10.558841\n",
       "3  203650429     0.0  4.0     167   270     0.0         31.879169  10.558841\n",
       "4  203636013     0.0  1.0     517    91     NaN         31.879169  10.558841"
      ]
     },
     "execution_count": 154,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#拼接\n",
    "user_info_df=pd.merge(user_info_df,tsne_df,how='left', on='topics',sort=False)\n",
    "user_info_df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 155,
   "id": "79e64099",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "mybar: 100%|██████████| 2000000/2000000 [00:34<00:00, 58181.06it/s] \n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>device_id</th>\n",
       "      <th>days</th>\n",
       "      <th>days_list</th>\n",
       "      <th>days_max</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>194045574</td>\n",
       "      <td>4#15#22#34#35#36#38#40#41#42#43#44</td>\n",
       "      <td>[4, 15, 22]</td>\n",
       "      <td>44</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>194045591</td>\n",
       "      <td>1#4#8#10#11#12#13#14#15#16#17#18#19#20#21#22#2...</td>\n",
       "      <td>[1, 4, 8, 10, 11, 12, 13, 14, 15, 16, 17, 18, ...</td>\n",
       "      <td>57</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>194045955</td>\n",
       "      <td>1#2#3#4#5#6#7#9#10#11#12#13#16#20#21#22#23#24#...</td>\n",
       "      <td>[1, 2, 3, 4, 5, 6, 7, 9, 10, 11, 12, 13, 16, 2...</td>\n",
       "      <td>60</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>194046101</td>\n",
       "      <td>1#2#15#46#49#50#51#52#53#54#55#56#57#59</td>\n",
       "      <td>[1, 2, 15]</td>\n",
       "      <td>59</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>194046455</td>\n",
       "      <td>4#6#9#10#11#12#13#14#15#19#20#22#23#24#25#26#2...</td>\n",
       "      <td>[4, 6, 9, 10, 11, 12, 13, 14, 15, 19, 20, 22, ...</td>\n",
       "      <td>58</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   device_id                                               days  \\\n",
       "0  194045574                 4#15#22#34#35#36#38#40#41#42#43#44   \n",
       "1  194045591  1#4#8#10#11#12#13#14#15#16#17#18#19#20#21#22#2...   \n",
       "2  194045955  1#2#3#4#5#6#7#9#10#11#12#13#16#20#21#22#23#24#...   \n",
       "3  194046101            1#2#15#46#49#50#51#52#53#54#55#56#57#59   \n",
       "4  194046455  4#6#9#10#11#12#13#14#15#19#20#22#23#24#25#26#2...   \n",
       "\n",
       "                                           days_list  days_max  \n",
       "0                                        [4, 15, 22]        44  \n",
       "1  [1, 4, 8, 10, 11, 12, 13, 14, 15, 16, 17, 18, ...        57  \n",
       "2  [1, 2, 3, 4, 5, 6, 7, 9, 10, 11, 12, 13, 16, 2...        60  \n",
       "3                                         [1, 2, 15]        59  \n",
       "4  [4, 6, 9, 10, 11, 12, 13, 14, 15, 19, 20, 22, ...        58  "
      ]
     },
     "execution_count": 155,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#标签处理\n",
    "#设备活跃表device_active读取\n",
    "device_active_df = pd.read_csv('1_device_active.csv', sep='|')\n",
    "tqdm.pandas(desc='mybar')\n",
    "device_active_df['days_list'] = device_active_df['days'].progress_apply(lambda x:[int(y) for y in x.split(\"#\")])\n",
    "device_active_df['days_max']=device_active_df['days_list'].map(max)\n",
    "#注意为预测需要去除30天之后的信息\n",
    "device_active_df['days_list']=device_active_df['days_list'].map(lambda x:[y for y in x if y<=30])\n",
    "device_active_df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 156,
   "id": "e6ca24db",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>device_id</th>\n",
       "      <th>days</th>\n",
       "      <th>days_list</th>\n",
       "      <th>days_max</th>\n",
       "      <th>is_churn</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>194045574</td>\n",
       "      <td>4#15#22#34#35#36#38#40#41#42#43#44</td>\n",
       "      <td>[4, 15, 22]</td>\n",
       "      <td>44</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>194045591</td>\n",
       "      <td>1#4#8#10#11#12#13#14#15#16#17#18#19#20#21#22#2...</td>\n",
       "      <td>[1, 4, 8, 10, 11, 12, 13, 14, 15, 16, 17, 18, ...</td>\n",
       "      <td>57</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>194045955</td>\n",
       "      <td>1#2#3#4#5#6#7#9#10#11#12#13#16#20#21#22#23#24#...</td>\n",
       "      <td>[1, 2, 3, 4, 5, 6, 7, 9, 10, 11, 12, 13, 16, 2...</td>\n",
       "      <td>60</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>194046101</td>\n",
       "      <td>1#2#15#46#49#50#51#52#53#54#55#56#57#59</td>\n",
       "      <td>[1, 2, 15]</td>\n",
       "      <td>59</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>194046455</td>\n",
       "      <td>4#6#9#10#11#12#13#14#15#19#20#22#23#24#25#26#2...</td>\n",
       "      <td>[4, 6, 9, 10, 11, 12, 13, 14, 15, 19, 20, 22, ...</td>\n",
       "      <td>58</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   device_id                                               days  \\\n",
       "0  194045574                 4#15#22#34#35#36#38#40#41#42#43#44   \n",
       "1  194045591  1#4#8#10#11#12#13#14#15#16#17#18#19#20#21#22#2...   \n",
       "2  194045955  1#2#3#4#5#6#7#9#10#11#12#13#16#20#21#22#23#24#...   \n",
       "3  194046101            1#2#15#46#49#50#51#52#53#54#55#56#57#59   \n",
       "4  194046455  4#6#9#10#11#12#13#14#15#19#20#22#23#24#25#26#2...   \n",
       "\n",
       "                                           days_list  days_max  is_churn  \n",
       "0                                        [4, 15, 22]        44         1  \n",
       "1  [1, 4, 8, 10, 11, 12, 13, 14, 15, 16, 17, 18, ...        57         1  \n",
       "2  [1, 2, 3, 4, 5, 6, 7, 9, 10, 11, 12, 13, 16, 2...        60         1  \n",
       "3                                         [1, 2, 15]        59         1  \n",
       "4  [4, 6, 9, 10, 11, 12, 13, 14, 15, 19, 20, 22, ...        58         1  "
      ]
     },
     "execution_count": 156,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#设置标记\n",
    "device_active_df['is_churn']=0\n",
    "device_active_df.loc[device_active_df['days_max']>30,'is_churn']=1\n",
    "device_active_df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 157,
   "id": "edee6456",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>device_id</th>\n",
       "      <th>gender</th>\n",
       "      <th>age</th>\n",
       "      <th>device</th>\n",
       "      <th>city</th>\n",
       "      <th>is_vip</th>\n",
       "      <th>topics</th>\n",
       "      <th>dim1</th>\n",
       "      <th>dim2</th>\n",
       "      <th>days_list</th>\n",
       "      <th>is_churn</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>203724992</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>34</td>\n",
       "      <td>167</td>\n",
       "      <td>NaN</td>\n",
       "      <td></td>\n",
       "      <td>31.879169</td>\n",
       "      <td>10.558841</td>\n",
       "      <td>[13, 14, 15, 16, 19, 26, 30]</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>203709051</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>268</td>\n",
       "      <td>289</td>\n",
       "      <td>1.0</td>\n",
       "      <td></td>\n",
       "      <td>31.879169</td>\n",
       "      <td>10.558841</td>\n",
       "      <td>[1, 2, 26, 27, 29]</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>203685345</td>\n",
       "      <td>0.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>178</td>\n",
       "      <td>59</td>\n",
       "      <td>NaN</td>\n",
       "      <td></td>\n",
       "      <td>31.879169</td>\n",
       "      <td>10.558841</td>\n",
       "      <td>[4, 8, 13, 20, 22, 23, 26, 28]</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>203650429</td>\n",
       "      <td>0.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>167</td>\n",
       "      <td>270</td>\n",
       "      <td>0.0</td>\n",
       "      <td></td>\n",
       "      <td>31.879169</td>\n",
       "      <td>10.558841</td>\n",
       "      <td>[26, 27, 28]</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>203636013</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>517</td>\n",
       "      <td>91</td>\n",
       "      <td>NaN</td>\n",
       "      <td></td>\n",
       "      <td>31.879169</td>\n",
       "      <td>10.558841</td>\n",
       "      <td>[2, 16, 20, 22, 23, 24, 26, 27, 30]</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   device_id  gender  age  device  city  is_vip topics       dim1       dim2  \\\n",
       "0  203724992     0.0  1.0      34   167     NaN         31.879169  10.558841   \n",
       "1  203709051     0.0  1.0     268   289     1.0         31.879169  10.558841   \n",
       "2  203685345     0.0  NaN     178    59     NaN         31.879169  10.558841   \n",
       "3  203650429     0.0  4.0     167   270     0.0         31.879169  10.558841   \n",
       "4  203636013     0.0  1.0     517    91     NaN         31.879169  10.558841   \n",
       "\n",
       "                             days_list  is_churn  \n",
       "0         [13, 14, 15, 16, 19, 26, 30]         1  \n",
       "1                   [1, 2, 26, 27, 29]         1  \n",
       "2       [4, 8, 13, 20, 22, 23, 26, 28]         1  \n",
       "3                         [26, 27, 28]         1  \n",
       "4  [2, 16, 20, 22, 23, 24, 26, 27, 30]         1  "
      ]
     },
     "execution_count": 157,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#拼接\n",
    "temp_df=pd.merge(user_info_df,device_active_df.loc[:,['device_id','days_list','is_churn']],how='left', on='device_id',sort=False)\n",
    "temp_df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 160,
   "id": "17fd3159",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>device_id</th>\n",
       "      <th>day_max</th>\n",
       "      <th>day_len</th>\n",
       "      <th>channel_most</th>\n",
       "      <th>channel_unique</th>\n",
       "      <th>actions_unique</th>\n",
       "      <th>pages_unique</th>\n",
       "      <th>pages_len</th>\n",
       "      <th>music_ids_unique</th>\n",
       "      <th>artist_id_unique</th>\n",
       "      <th>is_paid_sum</th>\n",
       "      <th>comment_cnt_sum</th>\n",
       "      <th>style_most_name</th>\n",
       "      <th>dim1_x</th>\n",
       "      <th>dim2_x</th>\n",
       "      <th>channel_most_day</th>\n",
       "      <th>channel_unique_day</th>\n",
       "      <th>actions_unique_day</th>\n",
       "      <th>pages_unique_day</th>\n",
       "      <th>pages_len_day</th>\n",
       "      <th>music_ids_unique_day</th>\n",
       "      <th>artist_id_unique_day</th>\n",
       "      <th>is_paid_sum_day</th>\n",
       "      <th>comment_cnt_sum_day</th>\n",
       "      <th>user_type</th>\n",
       "      <th>gender</th>\n",
       "      <th>age</th>\n",
       "      <th>device</th>\n",
       "      <th>city</th>\n",
       "      <th>is_vip</th>\n",
       "      <th>topics</th>\n",
       "      <th>dim1_y</th>\n",
       "      <th>dim2_y</th>\n",
       "      <th>days_list</th>\n",
       "      <th>is_churn</th>\n",
       "      <th>pages_seq</th>\n",
       "      <th>music_ids_seq</th>\n",
       "      <th>actions_seq</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2452</td>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "      <td>5</td>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>4</td>\n",
       "      <td>25</td>\n",
       "      <td>23</td>\n",
       "      <td>17</td>\n",
       "      <td>21.0</td>\n",
       "      <td>2090</td>\n",
       "      <td>流行</td>\n",
       "      <td>-24.092134</td>\n",
       "      <td>-15.032055</td>\n",
       "      <td>5.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>25.0</td>\n",
       "      <td>23.0</td>\n",
       "      <td>17.0</td>\n",
       "      <td>21.0</td>\n",
       "      <td>2090.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>286</td>\n",
       "      <td>269</td>\n",
       "      <td>NaN</td>\n",
       "      <td></td>\n",
       "      <td>31.879169</td>\n",
       "      <td>10.558841</td>\n",
       "      <td>[4]</td>\n",
       "      <td>1</td>\n",
       "      <td>[16, 16, 16, 16, 16, 16, 18, 16, 16, 16, 16, 1...</td>\n",
       "      <td>[9266462, 10274802, 5284244, 7887489, 6904175,...</td>\n",
       "      <td>[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>7181</td>\n",
       "      <td>16</td>\n",
       "      <td>2</td>\n",
       "      <td>5</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>15</td>\n",
       "      <td>7</td>\n",
       "      <td>7</td>\n",
       "      <td>13.0</td>\n",
       "      <td>306775</td>\n",
       "      <td>流行</td>\n",
       "      <td>-24.092134</td>\n",
       "      <td>-15.032055</td>\n",
       "      <td>2.5</td>\n",
       "      <td>0.5</td>\n",
       "      <td>0.5</td>\n",
       "      <td>0.5</td>\n",
       "      <td>7.5</td>\n",
       "      <td>3.5</td>\n",
       "      <td>3.5</td>\n",
       "      <td>6.5</td>\n",
       "      <td>153387.5</td>\n",
       "      <td>0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>NaN</td>\n",
       "      <td>40</td>\n",
       "      <td>100</td>\n",
       "      <td>NaN</td>\n",
       "      <td></td>\n",
       "      <td>31.879169</td>\n",
       "      <td>10.558841</td>\n",
       "      <td>[1, 2, 7, 16, 25]</td>\n",
       "      <td>1</td>\n",
       "      <td>[32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 3...</td>\n",
       "      <td>[1977322, 1977322, 1977322, 1977322, 1977322, ...</td>\n",
       "      <td>[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   device_id  day_max  day_len  channel_most  channel_unique  actions_unique  \\\n",
       "0       2452        4        1             5               1               3   \n",
       "1       7181       16        2             5               1               1   \n",
       "\n",
       "   pages_unique  pages_len  music_ids_unique  artist_id_unique  is_paid_sum  \\\n",
       "0             4         25                23                17         21.0   \n",
       "1             1         15                 7                 7         13.0   \n",
       "\n",
       "   comment_cnt_sum style_most_name     dim1_x     dim2_x  channel_most_day  \\\n",
       "0             2090              流行 -24.092134 -15.032055               5.0   \n",
       "1           306775              流行 -24.092134 -15.032055               2.5   \n",
       "\n",
       "   channel_unique_day  actions_unique_day  pages_unique_day  pages_len_day  \\\n",
       "0                 1.0                 3.0               4.0           25.0   \n",
       "1                 0.5                 0.5               0.5            7.5   \n",
       "\n",
       "   music_ids_unique_day  artist_id_unique_day  is_paid_sum_day  \\\n",
       "0                  23.0                  17.0             21.0   \n",
       "1                   3.5                   3.5              6.5   \n",
       "\n",
       "   comment_cnt_sum_day  user_type  gender  age  device  city  is_vip topics  \\\n",
       "0               2090.0          0     0.0  3.0     286   269     NaN          \n",
       "1             153387.5          0     1.0  NaN      40   100     NaN          \n",
       "\n",
       "      dim1_y     dim2_y          days_list  is_churn  \\\n",
       "0  31.879169  10.558841                [4]         1   \n",
       "1  31.879169  10.558841  [1, 2, 7, 16, 25]         1   \n",
       "\n",
       "                                           pages_seq  \\\n",
       "0  [16, 16, 16, 16, 16, 16, 18, 16, 16, 16, 16, 1...   \n",
       "1  [32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 3...   \n",
       "\n",
       "                                       music_ids_seq  \\\n",
       "0  [9266462, 10274802, 5284244, 7887489, 6904175,...   \n",
       "1  [1977322, 1977322, 1977322, 1977322, 1977322, ...   \n",
       "\n",
       "                                         actions_seq  \n",
       "0  [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ...  \n",
       "1      [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]  "
      ]
     },
     "execution_count": 160,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#汇总\n",
    "user_data_df=pd.merge(user_f_df,temp_df,how='left', on='device_id',sort=False)\n",
    "user_data_df['pages_seq']=user_behavior_seq_df['pages_seq']\n",
    "user_data_df['music_ids_seq']=user_behavior_seq_df['music_ids_seq']\n",
    "user_data_df['actions_seq']=user_behavior_seq_df['actions_seq']\n",
    "user_data_df.head(2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 161,
   "id": "e080e695",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "备份完成 \n"
     ]
    }
   ],
   "source": [
    "#备份到本地文件\n",
    "import pickle\n",
    "with open('./user_data_df.pkl', 'wb') as f:\n",
    "    pickle.dump(user_data_df, f)\n",
    "print('备份完成 ')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 162,
   "id": "7ef46ff3",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "内存回收完成\n"
     ]
    }
   ],
   "source": [
    "del user_info_df,device_active_df,user_f_df,temp_df,user_behavior_seq_df\n",
    "import gc\n",
    "gc.collect()\n",
    "print('内存回收完成')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "abb566fd",
   "metadata": {},
   "source": [
    "## 3.2.lightGBM流失率建模"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "63232cdf",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "读取完成\n"
     ]
    }
   ],
   "source": [
    "#读取pickle文件\n",
    "import pickle\n",
    "df=open('./user_data_df.pkl','rb')#注意此处是rb\n",
    "user_data_df=pickle.load(df)\n",
    "df.close()\n",
    "print('读取完成')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 163,
   "id": "cefe68b5",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>channel_most_0</th>\n",
       "      <th>channel_most_1</th>\n",
       "      <th>channel_most_2</th>\n",
       "      <th>channel_most_3</th>\n",
       "      <th>channel_most_5</th>\n",
       "      <th>channel_most_6</th>\n",
       "      <th>channel_most_8</th>\n",
       "      <th>channel_most_9</th>\n",
       "      <th>channel_most_11</th>\n",
       "      <th>channel_most_12</th>\n",
       "      <th>channel_most_13</th>\n",
       "      <th>channel_most_14</th>\n",
       "      <th>channel_most_15</th>\n",
       "      <th>channel_most_16</th>\n",
       "      <th>channel_most_18</th>\n",
       "      <th>channel_most_28</th>\n",
       "      <th>channel_most_31</th>\n",
       "      <th>channel_most_32</th>\n",
       "      <th>channel_most_37</th>\n",
       "      <th>channel_most_38</th>\n",
       "      <th>channel_most_44</th>\n",
       "      <th>channel_most_46</th>\n",
       "      <th>channel_most_48</th>\n",
       "      <th>channel_most_49</th>\n",
       "      <th>channel_most_51</th>\n",
       "      <th>channel_most_55</th>\n",
       "      <th>channel_most_56</th>\n",
       "      <th>channel_most_58</th>\n",
       "      <th>channel_most_59</th>\n",
       "      <th>channel_most_62</th>\n",
       "      <th>channel_most_70</th>\n",
       "      <th>pages_most_0</th>\n",
       "      <th>pages_most_7</th>\n",
       "      <th>pages_most_9</th>\n",
       "      <th>pages_most_16</th>\n",
       "      <th>pages_most_18</th>\n",
       "      <th>pages_most_19</th>\n",
       "      <th>pages_most_20</th>\n",
       "      <th>pages_most_21</th>\n",
       "      <th>pages_most_26</th>\n",
       "      <th>pages_most_28</th>\n",
       "      <th>pages_most_29</th>\n",
       "      <th>pages_most_30</th>\n",
       "      <th>pages_most_32</th>\n",
       "      <th>pages_most_34</th>\n",
       "      <th>pages_most_36</th>\n",
       "      <th>pages_most_38</th>\n",
       "      <th>pages_most_45</th>\n",
       "      <th>pages_most_47</th>\n",
       "      <th>actions_most_1</th>\n",
       "      <th>actions_most_2</th>\n",
       "      <th>actions_most_3</th>\n",
       "      <th>actions_most_4</th>\n",
       "      <th>actions_most_5</th>\n",
       "      <th>actions_most_6</th>\n",
       "      <th>actions_most_7</th>\n",
       "      <th>actions_most_8</th>\n",
       "      <th>user_type_0</th>\n",
       "      <th>user_type_1</th>\n",
       "      <th>user_type_2</th>\n",
       "      <th>user_type_3</th>\n",
       "      <th>user_type_4</th>\n",
       "      <th>user_type_5</th>\n",
       "      <th>gender_-99</th>\n",
       "      <th>gender_0</th>\n",
       "      <th>gender_1</th>\n",
       "      <th>device_1</th>\n",
       "      <th>device_2</th>\n",
       "      <th>device_5</th>\n",
       "      <th>device_7</th>\n",
       "      <th>device_8</th>\n",
       "      <th>device_9</th>\n",
       "      <th>device_10</th>\n",
       "      <th>device_11</th>\n",
       "      <th>device_12</th>\n",
       "      <th>device_13</th>\n",
       "      <th>device_14</th>\n",
       "      <th>device_16</th>\n",
       "      <th>device_17</th>\n",
       "      <th>device_18</th>\n",
       "      <th>device_19</th>\n",
       "      <th>device_20</th>\n",
       "      <th>device_21</th>\n",
       "      <th>device_23</th>\n",
       "      <th>device_24</th>\n",
       "      <th>device_25</th>\n",
       "      <th>device_26</th>\n",
       "      <th>device_27</th>\n",
       "      <th>device_28</th>\n",
       "      <th>device_29</th>\n",
       "      <th>device_30</th>\n",
       "      <th>device_31</th>\n",
       "      <th>device_32</th>\n",
       "      <th>device_33</th>\n",
       "      <th>device_34</th>\n",
       "      <th>device_35</th>\n",
       "      <th>device_36</th>\n",
       "      <th>device_37</th>\n",
       "      <th>device_39</th>\n",
       "      <th>device_40</th>\n",
       "      <th>device_41</th>\n",
       "      <th>device_42</th>\n",
       "      <th>device_43</th>\n",
       "      <th>device_49</th>\n",
       "      <th>device_50</th>\n",
       "      <th>device_51</th>\n",
       "      <th>device_52</th>\n",
       "      <th>device_53</th>\n",
       "      <th>device_54</th>\n",
       "      <th>device_55</th>\n",
       "      <th>device_57</th>\n",
       "      <th>device_58</th>\n",
       "      <th>device_59</th>\n",
       "      <th>device_60</th>\n",
       "      <th>device_63</th>\n",
       "      <th>device_64</th>\n",
       "      <th>device_65</th>\n",
       "      <th>device_66</th>\n",
       "      <th>device_69</th>\n",
       "      <th>device_70</th>\n",
       "      <th>device_72</th>\n",
       "      <th>device_74</th>\n",
       "      <th>device_75</th>\n",
       "      <th>device_85</th>\n",
       "      <th>device_89</th>\n",
       "      <th>device_92</th>\n",
       "      <th>device_100</th>\n",
       "      <th>device_101</th>\n",
       "      <th>device_152</th>\n",
       "      <th>device_157</th>\n",
       "      <th>device_158</th>\n",
       "      <th>device_160</th>\n",
       "      <th>device_161</th>\n",
       "      <th>device_162</th>\n",
       "      <th>device_163</th>\n",
       "      <th>device_166</th>\n",
       "      <th>device_167</th>\n",
       "      <th>device_171</th>\n",
       "      <th>device_172</th>\n",
       "      <th>device_174</th>\n",
       "      <th>device_175</th>\n",
       "      <th>device_176</th>\n",
       "      <th>device_177</th>\n",
       "      <th>device_178</th>\n",
       "      <th>device_179</th>\n",
       "      <th>device_180</th>\n",
       "      <th>device_181</th>\n",
       "      <th>device_184</th>\n",
       "      <th>device_186</th>\n",
       "      <th>device_192</th>\n",
       "      <th>device_195</th>\n",
       "      <th>device_202</th>\n",
       "      <th>device_204</th>\n",
       "      <th>device_205</th>\n",
       "      <th>device_206</th>\n",
       "      <th>device_207</th>\n",
       "      <th>device_208</th>\n",
       "      <th>device_209</th>\n",
       "      <th>device_210</th>\n",
       "      <th>device_212</th>\n",
       "      <th>device_214</th>\n",
       "      <th>device_215</th>\n",
       "      <th>device_216</th>\n",
       "      <th>device_217</th>\n",
       "      <th>device_218</th>\n",
       "      <th>device_219</th>\n",
       "      <th>device_220</th>\n",
       "      <th>device_221</th>\n",
       "      <th>device_222</th>\n",
       "      <th>device_223</th>\n",
       "      <th>device_224</th>\n",
       "      <th>device_225</th>\n",
       "      <th>device_226</th>\n",
       "      <th>device_227</th>\n",
       "      <th>device_228</th>\n",
       "      <th>device_229</th>\n",
       "      <th>device_230</th>\n",
       "      <th>device_231</th>\n",
       "      <th>device_232</th>\n",
       "      <th>device_233</th>\n",
       "      <th>device_234</th>\n",
       "      <th>device_235</th>\n",
       "      <th>device_241</th>\n",
       "      <th>device_242</th>\n",
       "      <th>device_244</th>\n",
       "      <th>device_245</th>\n",
       "      <th>device_246</th>\n",
       "      <th>device_247</th>\n",
       "      <th>device_248</th>\n",
       "      <th>device_249</th>\n",
       "      <th>device_250</th>\n",
       "      <th>device_251</th>\n",
       "      <th>device_252</th>\n",
       "      <th>device_253</th>\n",
       "      <th>device_254</th>\n",
       "      <th>device_255</th>\n",
       "      <th>device_267</th>\n",
       "      <th>device_268</th>\n",
       "      <th>device_269</th>\n",
       "      <th>device_270</th>\n",
       "      <th>device_271</th>\n",
       "      <th>device_272</th>\n",
       "      <th>device_275</th>\n",
       "      <th>device_276</th>\n",
       "      <th>device_277</th>\n",
       "      <th>device_278</th>\n",
       "      <th>device_280</th>\n",
       "      <th>device_281</th>\n",
       "      <th>device_282</th>\n",
       "      <th>device_283</th>\n",
       "      <th>device_285</th>\n",
       "      <th>device_286</th>\n",
       "      <th>device_287</th>\n",
       "      <th>device_289</th>\n",
       "      <th>device_290</th>\n",
       "      <th>device_291</th>\n",
       "      <th>device_292</th>\n",
       "      <th>device_293</th>\n",
       "      <th>device_294</th>\n",
       "      <th>device_295</th>\n",
       "      <th>device_296</th>\n",
       "      <th>device_298</th>\n",
       "      <th>device_299</th>\n",
       "      <th>device_300</th>\n",
       "      <th>device_301</th>\n",
       "      <th>device_302</th>\n",
       "      <th>device_303</th>\n",
       "      <th>device_304</th>\n",
       "      <th>device_305</th>\n",
       "      <th>device_306</th>\n",
       "      <th>device_307</th>\n",
       "      <th>device_308</th>\n",
       "      <th>device_309</th>\n",
       "      <th>device_311</th>\n",
       "      <th>device_319</th>\n",
       "      <th>device_327</th>\n",
       "      <th>device_328</th>\n",
       "      <th>device_334</th>\n",
       "      <th>device_335</th>\n",
       "      <th>device_337</th>\n",
       "      <th>device_339</th>\n",
       "      <th>device_343</th>\n",
       "      <th>device_379</th>\n",
       "      <th>device_397</th>\n",
       "      <th>device_399</th>\n",
       "      <th>device_401</th>\n",
       "      <th>device_416</th>\n",
       "      <th>device_417</th>\n",
       "      <th>device_418</th>\n",
       "      <th>device_419</th>\n",
       "      <th>device_420</th>\n",
       "      <th>device_421</th>\n",
       "      <th>device_422</th>\n",
       "      <th>device_423</th>\n",
       "      <th>device_424</th>\n",
       "      <th>device_425</th>\n",
       "      <th>device_426</th>\n",
       "      <th>device_427</th>\n",
       "      <th>device_428</th>\n",
       "      <th>device_429</th>\n",
       "      <th>device_430</th>\n",
       "      <th>device_431</th>\n",
       "      <th>device_432</th>\n",
       "      <th>device_433</th>\n",
       "      <th>device_434</th>\n",
       "      <th>device_435</th>\n",
       "      <th>device_443</th>\n",
       "      <th>device_444</th>\n",
       "      <th>device_445</th>\n",
       "      <th>device_446</th>\n",
       "      <th>device_447</th>\n",
       "      <th>device_448</th>\n",
       "      <th>device_449</th>\n",
       "      <th>device_450</th>\n",
       "      <th>device_451</th>\n",
       "      <th>device_456</th>\n",
       "      <th>device_457</th>\n",
       "      <th>device_458</th>\n",
       "      <th>device_459</th>\n",
       "      <th>device_460</th>\n",
       "      <th>device_464</th>\n",
       "      <th>device_465</th>\n",
       "      <th>device_466</th>\n",
       "      <th>device_468</th>\n",
       "      <th>device_470</th>\n",
       "      <th>device_471</th>\n",
       "      <th>device_472</th>\n",
       "      <th>device_473</th>\n",
       "      <th>device_474</th>\n",
       "      <th>device_476</th>\n",
       "      <th>device_477</th>\n",
       "      <th>device_478</th>\n",
       "      <th>device_479</th>\n",
       "      <th>device_480</th>\n",
       "      <th>device_481</th>\n",
       "      <th>device_482</th>\n",
       "      <th>device_483</th>\n",
       "      <th>device_489</th>\n",
       "      <th>device_490</th>\n",
       "      <th>device_492</th>\n",
       "      <th>device_504</th>\n",
       "      <th>device_505</th>\n",
       "      <th>device_509</th>\n",
       "      <th>device_511</th>\n",
       "      <th>device_512</th>\n",
       "      <th>device_513</th>\n",
       "      <th>device_514</th>\n",
       "      <th>device_516</th>\n",
       "      <th>device_517</th>\n",
       "      <th>device_519</th>\n",
       "      <th>device_520</th>\n",
       "      <th>device_522</th>\n",
       "      <th>device_524</th>\n",
       "      <th>device_527</th>\n",
       "      <th>device_528</th>\n",
       "      <th>device_530</th>\n",
       "      <th>device_532</th>\n",
       "      <th>device_533</th>\n",
       "      <th>device_534</th>\n",
       "      <th>device_536</th>\n",
       "      <th>device_538</th>\n",
       "      <th>device_539</th>\n",
       "      <th>device_541</th>\n",
       "      <th>device_542</th>\n",
       "      <th>device_543</th>\n",
       "      <th>device_544</th>\n",
       "      <th>device_549</th>\n",
       "      <th>device_551</th>\n",
       "      <th>city_1</th>\n",
       "      <th>city_2</th>\n",
       "      <th>city_3</th>\n",
       "      <th>city_4</th>\n",
       "      <th>city_5</th>\n",
       "      <th>city_6</th>\n",
       "      <th>city_7</th>\n",
       "      <th>city_8</th>\n",
       "      <th>city_9</th>\n",
       "      <th>city_10</th>\n",
       "      <th>city_11</th>\n",
       "      <th>city_12</th>\n",
       "      <th>city_13</th>\n",
       "      <th>city_14</th>\n",
       "      <th>city_15</th>\n",
       "      <th>city_16</th>\n",
       "      <th>city_17</th>\n",
       "      <th>city_18</th>\n",
       "      <th>city_19</th>\n",
       "      <th>city_20</th>\n",
       "      <th>city_21</th>\n",
       "      <th>city_22</th>\n",
       "      <th>city_23</th>\n",
       "      <th>city_24</th>\n",
       "      <th>city_25</th>\n",
       "      <th>city_26</th>\n",
       "      <th>city_27</th>\n",
       "      <th>city_28</th>\n",
       "      <th>city_29</th>\n",
       "      <th>city_30</th>\n",
       "      <th>city_31</th>\n",
       "      <th>city_32</th>\n",
       "      <th>city_33</th>\n",
       "      <th>city_34</th>\n",
       "      <th>city_35</th>\n",
       "      <th>city_36</th>\n",
       "      <th>city_37</th>\n",
       "      <th>city_38</th>\n",
       "      <th>city_39</th>\n",
       "      <th>city_40</th>\n",
       "      <th>city_41</th>\n",
       "      <th>city_42</th>\n",
       "      <th>city_43</th>\n",
       "      <th>city_44</th>\n",
       "      <th>city_45</th>\n",
       "      <th>city_46</th>\n",
       "      <th>city_47</th>\n",
       "      <th>city_48</th>\n",
       "      <th>city_49</th>\n",
       "      <th>city_50</th>\n",
       "      <th>city_51</th>\n",
       "      <th>city_52</th>\n",
       "      <th>city_53</th>\n",
       "      <th>city_54</th>\n",
       "      <th>city_55</th>\n",
       "      <th>city_56</th>\n",
       "      <th>city_57</th>\n",
       "      <th>city_58</th>\n",
       "      <th>city_59</th>\n",
       "      <th>city_60</th>\n",
       "      <th>city_61</th>\n",
       "      <th>city_62</th>\n",
       "      <th>city_63</th>\n",
       "      <th>city_64</th>\n",
       "      <th>city_65</th>\n",
       "      <th>city_66</th>\n",
       "      <th>city_67</th>\n",
       "      <th>city_68</th>\n",
       "      <th>city_69</th>\n",
       "      <th>city_70</th>\n",
       "      <th>city_71</th>\n",
       "      <th>city_72</th>\n",
       "      <th>city_73</th>\n",
       "      <th>city_74</th>\n",
       "      <th>city_75</th>\n",
       "      <th>city_76</th>\n",
       "      <th>city_77</th>\n",
       "      <th>city_78</th>\n",
       "      <th>city_79</th>\n",
       "      <th>city_80</th>\n",
       "      <th>city_81</th>\n",
       "      <th>city_82</th>\n",
       "      <th>city_83</th>\n",
       "      <th>city_84</th>\n",
       "      <th>city_85</th>\n",
       "      <th>city_86</th>\n",
       "      <th>city_87</th>\n",
       "      <th>city_88</th>\n",
       "      <th>city_89</th>\n",
       "      <th>city_90</th>\n",
       "      <th>city_91</th>\n",
       "      <th>city_92</th>\n",
       "      <th>city_93</th>\n",
       "      <th>city_94</th>\n",
       "      <th>city_95</th>\n",
       "      <th>city_96</th>\n",
       "      <th>city_97</th>\n",
       "      <th>city_98</th>\n",
       "      <th>city_99</th>\n",
       "      <th>city_100</th>\n",
       "      <th>city_101</th>\n",
       "      <th>city_102</th>\n",
       "      <th>city_103</th>\n",
       "      <th>city_104</th>\n",
       "      <th>city_105</th>\n",
       "      <th>city_106</th>\n",
       "      <th>city_107</th>\n",
       "      <th>city_108</th>\n",
       "      <th>city_109</th>\n",
       "      <th>city_110</th>\n",
       "      <th>city_111</th>\n",
       "      <th>city_112</th>\n",
       "      <th>city_113</th>\n",
       "      <th>city_114</th>\n",
       "      <th>city_115</th>\n",
       "      <th>city_116</th>\n",
       "      <th>city_117</th>\n",
       "      <th>city_118</th>\n",
       "      <th>city_119</th>\n",
       "      <th>city_120</th>\n",
       "      <th>city_121</th>\n",
       "      <th>city_122</th>\n",
       "      <th>city_123</th>\n",
       "      <th>city_124</th>\n",
       "      <th>city_125</th>\n",
       "      <th>city_126</th>\n",
       "      <th>city_127</th>\n",
       "      <th>city_128</th>\n",
       "      <th>city_129</th>\n",
       "      <th>city_130</th>\n",
       "      <th>city_131</th>\n",
       "      <th>city_132</th>\n",
       "      <th>city_133</th>\n",
       "      <th>city_134</th>\n",
       "      <th>city_135</th>\n",
       "      <th>city_136</th>\n",
       "      <th>city_137</th>\n",
       "      <th>city_138</th>\n",
       "      <th>city_139</th>\n",
       "      <th>city_140</th>\n",
       "      <th>city_141</th>\n",
       "      <th>city_142</th>\n",
       "      <th>city_143</th>\n",
       "      <th>city_144</th>\n",
       "      <th>city_145</th>\n",
       "      <th>city_146</th>\n",
       "      <th>city_147</th>\n",
       "      <th>city_148</th>\n",
       "      <th>city_149</th>\n",
       "      <th>city_150</th>\n",
       "      <th>city_151</th>\n",
       "      <th>city_152</th>\n",
       "      <th>city_153</th>\n",
       "      <th>city_154</th>\n",
       "      <th>city_155</th>\n",
       "      <th>city_156</th>\n",
       "      <th>city_157</th>\n",
       "      <th>city_158</th>\n",
       "      <th>city_159</th>\n",
       "      <th>city_160</th>\n",
       "      <th>city_161</th>\n",
       "      <th>city_162</th>\n",
       "      <th>city_163</th>\n",
       "      <th>city_164</th>\n",
       "      <th>city_165</th>\n",
       "      <th>city_166</th>\n",
       "      <th>city_167</th>\n",
       "      <th>city_168</th>\n",
       "      <th>city_169</th>\n",
       "      <th>city_170</th>\n",
       "      <th>city_171</th>\n",
       "      <th>city_172</th>\n",
       "      <th>city_173</th>\n",
       "      <th>city_174</th>\n",
       "      <th>city_175</th>\n",
       "      <th>city_176</th>\n",
       "      <th>city_177</th>\n",
       "      <th>city_178</th>\n",
       "      <th>city_179</th>\n",
       "      <th>city_180</th>\n",
       "      <th>city_181</th>\n",
       "      <th>city_182</th>\n",
       "      <th>city_183</th>\n",
       "      <th>city_184</th>\n",
       "      <th>city_185</th>\n",
       "      <th>city_186</th>\n",
       "      <th>city_187</th>\n",
       "      <th>city_188</th>\n",
       "      <th>city_189</th>\n",
       "      <th>city_190</th>\n",
       "      <th>city_191</th>\n",
       "      <th>city_192</th>\n",
       "      <th>city_193</th>\n",
       "      <th>city_194</th>\n",
       "      <th>city_195</th>\n",
       "      <th>city_196</th>\n",
       "      <th>city_197</th>\n",
       "      <th>city_198</th>\n",
       "      <th>city_199</th>\n",
       "      <th>city_200</th>\n",
       "      <th>city_201</th>\n",
       "      <th>city_202</th>\n",
       "      <th>city_203</th>\n",
       "      <th>city_204</th>\n",
       "      <th>city_205</th>\n",
       "      <th>city_206</th>\n",
       "      <th>city_207</th>\n",
       "      <th>city_208</th>\n",
       "      <th>city_209</th>\n",
       "      <th>city_210</th>\n",
       "      <th>city_211</th>\n",
       "      <th>city_212</th>\n",
       "      <th>city_213</th>\n",
       "      <th>city_214</th>\n",
       "      <th>city_215</th>\n",
       "      <th>city_216</th>\n",
       "      <th>city_217</th>\n",
       "      <th>city_218</th>\n",
       "      <th>city_219</th>\n",
       "      <th>city_220</th>\n",
       "      <th>city_221</th>\n",
       "      <th>city_222</th>\n",
       "      <th>city_223</th>\n",
       "      <th>city_224</th>\n",
       "      <th>city_225</th>\n",
       "      <th>city_226</th>\n",
       "      <th>city_227</th>\n",
       "      <th>city_228</th>\n",
       "      <th>city_229</th>\n",
       "      <th>city_230</th>\n",
       "      <th>city_231</th>\n",
       "      <th>city_232</th>\n",
       "      <th>city_233</th>\n",
       "      <th>city_234</th>\n",
       "      <th>city_235</th>\n",
       "      <th>city_236</th>\n",
       "      <th>city_237</th>\n",
       "      <th>city_238</th>\n",
       "      <th>city_239</th>\n",
       "      <th>city_240</th>\n",
       "      <th>city_241</th>\n",
       "      <th>city_242</th>\n",
       "      <th>city_243</th>\n",
       "      <th>city_244</th>\n",
       "      <th>city_245</th>\n",
       "      <th>city_246</th>\n",
       "      <th>city_247</th>\n",
       "      <th>city_248</th>\n",
       "      <th>city_249</th>\n",
       "      <th>city_250</th>\n",
       "      <th>city_251</th>\n",
       "      <th>city_252</th>\n",
       "      <th>city_253</th>\n",
       "      <th>city_254</th>\n",
       "      <th>city_255</th>\n",
       "      <th>city_256</th>\n",
       "      <th>city_257</th>\n",
       "      <th>city_258</th>\n",
       "      <th>city_259</th>\n",
       "      <th>city_260</th>\n",
       "      <th>city_261</th>\n",
       "      <th>city_262</th>\n",
       "      <th>city_263</th>\n",
       "      <th>city_264</th>\n",
       "      <th>city_265</th>\n",
       "      <th>city_266</th>\n",
       "      <th>city_267</th>\n",
       "      <th>city_268</th>\n",
       "      <th>city_269</th>\n",
       "      <th>city_270</th>\n",
       "      <th>city_271</th>\n",
       "      <th>city_272</th>\n",
       "      <th>city_273</th>\n",
       "      <th>city_274</th>\n",
       "      <th>city_275</th>\n",
       "      <th>city_276</th>\n",
       "      <th>city_277</th>\n",
       "      <th>city_278</th>\n",
       "      <th>city_279</th>\n",
       "      <th>city_280</th>\n",
       "      <th>city_281</th>\n",
       "      <th>city_282</th>\n",
       "      <th>city_283</th>\n",
       "      <th>city_284</th>\n",
       "      <th>city_285</th>\n",
       "      <th>city_286</th>\n",
       "      <th>city_287</th>\n",
       "      <th>city_288</th>\n",
       "      <th>city_289</th>\n",
       "      <th>city_290</th>\n",
       "      <th>city_291</th>\n",
       "      <th>city_292</th>\n",
       "      <th>city_293</th>\n",
       "      <th>city_294</th>\n",
       "      <th>city_295</th>\n",
       "      <th>city_296</th>\n",
       "      <th>city_297</th>\n",
       "      <th>city_298</th>\n",
       "      <th>city_299</th>\n",
       "      <th>city_300</th>\n",
       "      <th>city_301</th>\n",
       "      <th>city_302</th>\n",
       "      <th>city_303</th>\n",
       "      <th>city_304</th>\n",
       "      <th>city_305</th>\n",
       "      <th>city_306</th>\n",
       "      <th>city_307</th>\n",
       "      <th>city_308</th>\n",
       "      <th>city_309</th>\n",
       "      <th>city_310</th>\n",
       "      <th>city_311</th>\n",
       "      <th>city_312</th>\n",
       "      <th>city_313</th>\n",
       "      <th>city_314</th>\n",
       "      <th>city_315</th>\n",
       "      <th>city_316</th>\n",
       "      <th>city_317</th>\n",
       "      <th>city_318</th>\n",
       "      <th>city_319</th>\n",
       "      <th>city_320</th>\n",
       "      <th>city_321</th>\n",
       "      <th>city_322</th>\n",
       "      <th>city_323</th>\n",
       "      <th>city_324</th>\n",
       "      <th>city_325</th>\n",
       "      <th>city_326</th>\n",
       "      <th>city_327</th>\n",
       "      <th>city_328</th>\n",
       "      <th>city_329</th>\n",
       "      <th>city_330</th>\n",
       "      <th>city_331</th>\n",
       "      <th>city_332</th>\n",
       "      <th>city_333</th>\n",
       "      <th>city_334</th>\n",
       "      <th>city_335</th>\n",
       "      <th>city_336</th>\n",
       "      <th>city_337</th>\n",
       "      <th>city_338</th>\n",
       "      <th>is_vip_-99</th>\n",
       "      <th>is_vip_0</th>\n",
       "      <th>is_vip_1</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   channel_most_0  channel_most_1  channel_most_2  channel_most_3  \\\n",
       "0               0               0               0               0   \n",
       "1               0               0               0               0   \n",
       "2               0               0               0               0   \n",
       "3               0               0               1               0   \n",
       "4               1               0               0               0   \n",
       "\n",
       "   channel_most_5  channel_most_6  channel_most_8  channel_most_9  \\\n",
       "0               1               0               0               0   \n",
       "1               1               0               0               0   \n",
       "2               1               0               0               0   \n",
       "3               0               0               0               0   \n",
       "4               0               0               0               0   \n",
       "\n",
       "   channel_most_11  channel_most_12  channel_most_13  channel_most_14  \\\n",
       "0                0                0                0                0   \n",
       "1                0                0                0                0   \n",
       "2                0                0                0                0   \n",
       "3                0                0                0                0   \n",
       "4                0                0                0                0   \n",
       "\n",
       "   channel_most_15  channel_most_16  channel_most_18  channel_most_28  \\\n",
       "0                0                0                0                0   \n",
       "1                0                0                0                0   \n",
       "2                0                0                0                0   \n",
       "3                0                0                0                0   \n",
       "4                0                0                0                0   \n",
       "\n",
       "   channel_most_31  channel_most_32  channel_most_37  channel_most_38  \\\n",
       "0                0                0                0                0   \n",
       "1                0                0                0                0   \n",
       "2                0                0                0                0   \n",
       "3                0                0                0                0   \n",
       "4                0                0                0                0   \n",
       "\n",
       "   channel_most_44  channel_most_46  channel_most_48  channel_most_49  \\\n",
       "0                0                0                0                0   \n",
       "1                0                0                0                0   \n",
       "2                0                0                0                0   \n",
       "3                0                0                0                0   \n",
       "4                0                0                0                0   \n",
       "\n",
       "   channel_most_51  channel_most_55  channel_most_56  channel_most_58  \\\n",
       "0                0                0                0                0   \n",
       "1                0                0                0                0   \n",
       "2                0                0                0                0   \n",
       "3                0                0                0                0   \n",
       "4                0                0                0                0   \n",
       "\n",
       "   channel_most_59  channel_most_62  channel_most_70  pages_most_0  \\\n",
       "0                0                0                0             0   \n",
       "1                0                0                0             0   \n",
       "2                0                0                0             0   \n",
       "3                0                0                0             0   \n",
       "4                0                0                0             0   \n",
       "\n",
       "   pages_most_7  pages_most_9  pages_most_16  pages_most_18  pages_most_19  \\\n",
       "0             0             0              1              0              0   \n",
       "1             0             0              0              0              0   \n",
       "2             0             0              0              0              0   \n",
       "3             0             0              0              0              0   \n",
       "4             0             0              1              0              0   \n",
       "\n",
       "   pages_most_20  pages_most_21  pages_most_26  pages_most_28  pages_most_29  \\\n",
       "0              0              0              0              0              0   \n",
       "1              0              0              0              0              0   \n",
       "2              0              0              0              0              0   \n",
       "3              0              0              0              1              0   \n",
       "4              0              0              0              0              0   \n",
       "\n",
       "   pages_most_30  pages_most_32  pages_most_34  pages_most_36  pages_most_38  \\\n",
       "0              0              0              0              0              0   \n",
       "1              0              1              0              0              0   \n",
       "2              0              1              0              0              0   \n",
       "3              0              0              0              0              0   \n",
       "4              0              0              0              0              0   \n",
       "\n",
       "   pages_most_45  pages_most_47  actions_most_1  actions_most_2  \\\n",
       "0              0              0               1               0   \n",
       "1              0              0               1               0   \n",
       "2              0              0               1               0   \n",
       "3              0              0               1               0   \n",
       "4              0              0               1               0   \n",
       "\n",
       "   actions_most_3  actions_most_4  actions_most_5  actions_most_6  \\\n",
       "0               0               0               0               0   \n",
       "1               0               0               0               0   \n",
       "2               0               0               0               0   \n",
       "3               0               0               0               0   \n",
       "4               0               0               0               0   \n",
       "\n",
       "   actions_most_7  actions_most_8  user_type_0  user_type_1  user_type_2  \\\n",
       "0               0               0            1            0            0   \n",
       "1               0               0            1            0            0   \n",
       "2               0               0            1            0            0   \n",
       "3               0               0            1            0            0   \n",
       "4               0               0            1            0            0   \n",
       "\n",
       "   user_type_3  user_type_4  user_type_5  gender_-99  gender_0  gender_1  \\\n",
       "0            0            0            0           0         1         0   \n",
       "1            0            0            0           0         0         1   \n",
       "2            0            0            0           0         1         0   \n",
       "3            0            0            0           0         1         0   \n",
       "4            0            0            0           0         1         0   \n",
       "\n",
       "   device_1  device_2  device_5  device_7  device_8  device_9  device_10  \\\n",
       "0         0         0         0         0         0         0          0   \n",
       "1         0         0         0         0         0         0          0   \n",
       "2         0         0         0         0         0         0          0   \n",
       "3         0         0         0         0         0         0          0   \n",
       "4         0         0         0         0         0         0          0   \n",
       "\n",
       "   device_11  device_12  device_13  device_14  device_16  device_17  \\\n",
       "0          0          0          0          0          0          0   \n",
       "1          0          0          0          0          0          0   \n",
       "2          0          0          0          0          0          0   \n",
       "3          0          0          0          0          0          0   \n",
       "4          0          1          0          0          0          0   \n",
       "\n",
       "   device_18  device_19  device_20  device_21  device_23  device_24  \\\n",
       "0          0          0          0          0          0          0   \n",
       "1          0          0          0          0          0          0   \n",
       "2          0          0          0          0          0          0   \n",
       "3          0          0          0          0          0          0   \n",
       "4          0          0          0          0          0          0   \n",
       "\n",
       "   device_25  device_26  device_27  device_28  device_29  device_30  \\\n",
       "0          0          0          0          0          0          0   \n",
       "1          0          0          0          0          0          0   \n",
       "2          0          0          0          0          0          0   \n",
       "3          0          0          0          0          0          0   \n",
       "4          0          0          0          0          0          0   \n",
       "\n",
       "   device_31  device_32  device_33  device_34  device_35  device_36  \\\n",
       "0          0          0          0          0          0          0   \n",
       "1          0          0          0          0          0          0   \n",
       "2          0          0          0          0          0          0   \n",
       "3          0          0          0          0          0          0   \n",
       "4          0          0          0          0          0          0   \n",
       "\n",
       "   device_37  device_39  device_40  device_41  device_42  device_43  \\\n",
       "0          0          0          0          0          0          0   \n",
       "1          0          0          1          0          0          0   \n",
       "2          0          0          0          0          0          0   \n",
       "3          0          0          0          0          0          0   \n",
       "4          0          0          0          0          0          0   \n",
       "\n",
       "   device_49  device_50  device_51  device_52  device_53  device_54  \\\n",
       "0          0          0          0          0          0          0   \n",
       "1          0          0          0          0          0          0   \n",
       "2          0          0          0          0          0          0   \n",
       "3          0          0          0          0          0          0   \n",
       "4          0          0          0          0          0          0   \n",
       "\n",
       "   device_55  device_57  device_58  device_59  device_60  device_63  \\\n",
       "0          0          0          0          0          0          0   \n",
       "1          0          0          0          0          0          0   \n",
       "2          0          0          0          0          0          0   \n",
       "3          0          0          0          0          0          0   \n",
       "4          0          0          0          0          0          0   \n",
       "\n",
       "   device_64  device_65  device_66  device_69  device_70  device_72  \\\n",
       "0          0          0          0          0          0          0   \n",
       "1          0          0          0          0          0          0   \n",
       "2          0          0          0          0          0          0   \n",
       "3          0          0          0          0          0          0   \n",
       "4          0          0          0          0          0          0   \n",
       "\n",
       "   device_74  device_75  device_85  device_89  device_92  device_100  \\\n",
       "0          0          0          0          0          0           0   \n",
       "1          0          0          0          0          0           0   \n",
       "2          0          0          0          0          0           0   \n",
       "3          0          0          0          0          0           0   \n",
       "4          0          0          0          0          0           0   \n",
       "\n",
       "   device_101  device_152  device_157  device_158  device_160  device_161  \\\n",
       "0           0           0           0           0           0           0   \n",
       "1           0           0           0           0           0           0   \n",
       "2           0           0           0           0           0           0   \n",
       "3           0           0           0           0           0           0   \n",
       "4           0           0           0           0           0           0   \n",
       "\n",
       "   device_162  device_163  device_166  device_167  device_171  device_172  \\\n",
       "0           0           0           0           0           0           0   \n",
       "1           0           0           0           0           0           0   \n",
       "2           0           0           0           0           0           0   \n",
       "3           0           0           0           0           0           0   \n",
       "4           0           0           0           0           0           0   \n",
       "\n",
       "   device_174  device_175  device_176  device_177  device_178  device_179  \\\n",
       "0           0           0           0           0           0           0   \n",
       "1           0           0           0           0           0           0   \n",
       "2           0           0           0           0           0           0   \n",
       "3           0           0           1           0           0           0   \n",
       "4           0           0           0           0           0           0   \n",
       "\n",
       "   device_180  device_181  device_184  device_186  device_192  device_195  \\\n",
       "0           0           0           0           0           0           0   \n",
       "1           0           0           0           0           0           0   \n",
       "2           0           0           0           0           0           0   \n",
       "3           0           0           0           0           0           0   \n",
       "4           0           0           0           0           0           0   \n",
       "\n",
       "   device_202  device_204  device_205  device_206  device_207  device_208  \\\n",
       "0           0           0           0           0           0           0   \n",
       "1           0           0           0           0           0           0   \n",
       "2           0           0           0           0           0           0   \n",
       "3           0           0           0           0           0           0   \n",
       "4           0           0           0           0           0           0   \n",
       "\n",
       "   device_209  device_210  device_212  device_214  device_215  device_216  \\\n",
       "0           0           0           0           0           0           0   \n",
       "1           0           0           0           0           0           0   \n",
       "2           0           0           0           0           0           0   \n",
       "3           0           0           0           0           0           0   \n",
       "4           0           0           0           0           0           0   \n",
       "\n",
       "   device_217  device_218  device_219  device_220  device_221  device_222  \\\n",
       "0           0           0           0           0           0           0   \n",
       "1           0           0           0           0           0           0   \n",
       "2           0           0           0           0           0           0   \n",
       "3           0           0           0           0           0           0   \n",
       "4           0           0           0           0           0           0   \n",
       "\n",
       "   device_223  device_224  device_225  device_226  device_227  device_228  \\\n",
       "0           0           0           0           0           0           0   \n",
       "1           0           0           0           0           0           0   \n",
       "2           0           0           0           0           0           0   \n",
       "3           0           0           0           0           0           0   \n",
       "4           0           0           0           0           0           0   \n",
       "\n",
       "   device_229  device_230  device_231  device_232  device_233  device_234  \\\n",
       "0           0           0           0           0           0           0   \n",
       "1           0           0           0           0           0           0   \n",
       "2           0           0           0           0           0           0   \n",
       "3           0           0           0           0           0           0   \n",
       "4           0           0           0           0           0           0   \n",
       "\n",
       "   device_235  device_241  device_242  device_244  device_245  device_246  \\\n",
       "0           0           0           0           0           0           0   \n",
       "1           0           0           0           0           0           0   \n",
       "2           0           0           0           0           0           0   \n",
       "3           0           0           0           0           0           0   \n",
       "4           0           0           0           0           0           0   \n",
       "\n",
       "   device_247  device_248  device_249  device_250  device_251  device_252  \\\n",
       "0           0           0           0           0           0           0   \n",
       "1           0           0           0           0           0           0   \n",
       "2           0           0           0           0           0           0   \n",
       "3           0           0           0           0           0           0   \n",
       "4           0           0           0           0           0           0   \n",
       "\n",
       "   device_253  device_254  device_255  device_267  device_268  device_269  \\\n",
       "0           0           0           0           0           0           0   \n",
       "1           0           0           0           0           0           0   \n",
       "2           0           0           0           0           0           0   \n",
       "3           0           0           0           0           0           0   \n",
       "4           0           0           0           0           0           0   \n",
       "\n",
       "   device_270  device_271  device_272  device_275  device_276  device_277  \\\n",
       "0           0           0           0           0           0           0   \n",
       "1           0           0           0           0           0           0   \n",
       "2           0           0           0           0           0           0   \n",
       "3           0           0           0           0           0           0   \n",
       "4           0           0           0           0           0           0   \n",
       "\n",
       "   device_278  device_280  device_281  device_282  device_283  device_285  \\\n",
       "0           0           0           0           0           0           0   \n",
       "1           0           0           0           0           0           0   \n",
       "2           0           0           0           0           0           0   \n",
       "3           0           0           0           0           0           0   \n",
       "4           0           0           0           0           0           0   \n",
       "\n",
       "   device_286  device_287  device_289  device_290  device_291  device_292  \\\n",
       "0           1           0           0           0           0           0   \n",
       "1           0           0           0           0           0           0   \n",
       "2           0           0           0           0           0           0   \n",
       "3           0           0           0           0           0           0   \n",
       "4           0           0           0           0           0           0   \n",
       "\n",
       "   device_293  device_294  device_295  device_296  device_298  device_299  \\\n",
       "0           0           0           0           0           0           0   \n",
       "1           0           0           0           0           0           0   \n",
       "2           0           0           0           0           0           0   \n",
       "3           0           0           0           0           0           0   \n",
       "4           0           0           0           0           0           0   \n",
       "\n",
       "   device_300  device_301  device_302  device_303  device_304  device_305  \\\n",
       "0           0           0           0           0           0           0   \n",
       "1           0           0           0           0           0           0   \n",
       "2           0           1           0           0           0           0   \n",
       "3           0           0           0           0           0           0   \n",
       "4           0           0           0           0           0           0   \n",
       "\n",
       "   device_306  device_307  device_308  device_309  device_311  device_319  \\\n",
       "0           0           0           0           0           0           0   \n",
       "1           0           0           0           0           0           0   \n",
       "2           0           0           0           0           0           0   \n",
       "3           0           0           0           0           0           0   \n",
       "4           0           0           0           0           0           0   \n",
       "\n",
       "   device_327  device_328  device_334  device_335  device_337  device_339  \\\n",
       "0           0           0           0           0           0           0   \n",
       "1           0           0           0           0           0           0   \n",
       "2           0           0           0           0           0           0   \n",
       "3           0           0           0           0           0           0   \n",
       "4           0           0           0           0           0           0   \n",
       "\n",
       "   device_343  device_379  device_397  device_399  device_401  device_416  \\\n",
       "0           0           0           0           0           0           0   \n",
       "1           0           0           0           0           0           0   \n",
       "2           0           0           0           0           0           0   \n",
       "3           0           0           0           0           0           0   \n",
       "4           0           0           0           0           0           0   \n",
       "\n",
       "   device_417  device_418  device_419  device_420  device_421  device_422  \\\n",
       "0           0           0           0           0           0           0   \n",
       "1           0           0           0           0           0           0   \n",
       "2           0           0           0           0           0           0   \n",
       "3           0           0           0           0           0           0   \n",
       "4           0           0           0           0           0           0   \n",
       "\n",
       "   device_423  device_424  device_425  device_426  device_427  device_428  \\\n",
       "0           0           0           0           0           0           0   \n",
       "1           0           0           0           0           0           0   \n",
       "2           0           0           0           0           0           0   \n",
       "3           0           0           0           0           0           0   \n",
       "4           0           0           0           0           0           0   \n",
       "\n",
       "   device_429  device_430  device_431  device_432  device_433  device_434  \\\n",
       "0           0           0           0           0           0           0   \n",
       "1           0           0           0           0           0           0   \n",
       "2           0           0           0           0           0           0   \n",
       "3           0           0           0           0           0           0   \n",
       "4           0           0           0           0           0           0   \n",
       "\n",
       "   device_435  device_443  device_444  device_445  device_446  device_447  \\\n",
       "0           0           0           0           0           0           0   \n",
       "1           0           0           0           0           0           0   \n",
       "2           0           0           0           0           0           0   \n",
       "3           0           0           0           0           0           0   \n",
       "4           0           0           0           0           0           0   \n",
       "\n",
       "   device_448  device_449  device_450  device_451  device_456  device_457  \\\n",
       "0           0           0           0           0           0           0   \n",
       "1           0           0           0           0           0           0   \n",
       "2           0           0           0           0           0           0   \n",
       "3           0           0           0           0           0           0   \n",
       "4           0           0           0           0           0           0   \n",
       "\n",
       "   device_458  device_459  device_460  device_464  device_465  device_466  \\\n",
       "0           0           0           0           0           0           0   \n",
       "1           0           0           0           0           0           0   \n",
       "2           0           0           0           0           0           0   \n",
       "3           0           0           0           0           0           0   \n",
       "4           0           0           0           0           0           0   \n",
       "\n",
       "   device_468  device_470  device_471  device_472  device_473  device_474  \\\n",
       "0           0           0           0           0           0           0   \n",
       "1           0           0           0           0           0           0   \n",
       "2           0           0           0           0           0           0   \n",
       "3           0           0           0           0           0           0   \n",
       "4           0           0           0           0           0           0   \n",
       "\n",
       "   device_476  device_477  device_478  device_479  device_480  device_481  \\\n",
       "0           0           0           0           0           0           0   \n",
       "1           0           0           0           0           0           0   \n",
       "2           0           0           0           0           0           0   \n",
       "3           0           0           0           0           0           0   \n",
       "4           0           0           0           0           0           0   \n",
       "\n",
       "   device_482  device_483  device_489  device_490  device_492  device_504  \\\n",
       "0           0           0           0           0           0           0   \n",
       "1           0           0           0           0           0           0   \n",
       "2           0           0           0           0           0           0   \n",
       "3           0           0           0           0           0           0   \n",
       "4           0           0           0           0           0           0   \n",
       "\n",
       "   device_505  device_509  device_511  device_512  device_513  device_514  \\\n",
       "0           0           0           0           0           0           0   \n",
       "1           0           0           0           0           0           0   \n",
       "2           0           0           0           0           0           0   \n",
       "3           0           0           0           0           0           0   \n",
       "4           0           0           0           0           0           0   \n",
       "\n",
       "   device_516  device_517  device_519  device_520  device_522  device_524  \\\n",
       "0           0           0           0           0           0           0   \n",
       "1           0           0           0           0           0           0   \n",
       "2           0           0           0           0           0           0   \n",
       "3           0           0           0           0           0           0   \n",
       "4           0           0           0           0           0           0   \n",
       "\n",
       "   device_527  device_528  device_530  device_532  device_533  device_534  \\\n",
       "0           0           0           0           0           0           0   \n",
       "1           0           0           0           0           0           0   \n",
       "2           0           0           0           0           0           0   \n",
       "3           0           0           0           0           0           0   \n",
       "4           0           0           0           0           0           0   \n",
       "\n",
       "   device_536  device_538  device_539  device_541  device_542  device_543  \\\n",
       "0           0           0           0           0           0           0   \n",
       "1           0           0           0           0           0           0   \n",
       "2           0           0           0           0           0           0   \n",
       "3           0           0           0           0           0           0   \n",
       "4           0           0           0           0           0           0   \n",
       "\n",
       "   device_544  device_549  device_551  city_1  city_2  city_3  city_4  city_5  \\\n",
       "0           0           0           0       0       0       0       0       0   \n",
       "1           0           0           0       0       0       0       0       0   \n",
       "2           0           0           0       0       0       0       0       0   \n",
       "3           0           0           0       0       0       0       0       0   \n",
       "4           0           0           0       0       0       0       0       0   \n",
       "\n",
       "   city_6  city_7  city_8  city_9  city_10  city_11  city_12  city_13  \\\n",
       "0       0       0       0       0        0        0        0        0   \n",
       "1       0       0       0       0        0        0        0        0   \n",
       "2       0       0       0       0        0        0        0        0   \n",
       "3       0       0       0       0        0        0        0        0   \n",
       "4       0       0       0       0        0        0        0        0   \n",
       "\n",
       "   city_14  city_15  city_16  city_17  city_18  city_19  city_20  city_21  \\\n",
       "0        0        0        0        0        0        0        0        0   \n",
       "1        0        0        0        0        0        0        0        0   \n",
       "2        0        0        0        0        0        0        0        0   \n",
       "3        0        0        0        0        0        0        0        0   \n",
       "4        0        0        0        0        0        0        0        0   \n",
       "\n",
       "   city_22  city_23  city_24  city_25  city_26  city_27  city_28  city_29  \\\n",
       "0        0        0        0        0        0        0        0        0   \n",
       "1        0        0        0        0        0        0        0        0   \n",
       "2        0        0        0        0        0        0        0        0   \n",
       "3        0        0        0        0        0        0        0        0   \n",
       "4        0        0        0        0        0        0        0        0   \n",
       "\n",
       "   city_30  city_31  city_32  city_33  city_34  city_35  city_36  city_37  \\\n",
       "0        0        0        0        0        0        0        0        0   \n",
       "1        0        0        0        0        0        0        0        0   \n",
       "2        0        0        0        0        0        0        0        0   \n",
       "3        0        0        0        0        0        0        0        0   \n",
       "4        0        0        0        0        0        0        0        0   \n",
       "\n",
       "   city_38  city_39  city_40  city_41  city_42  city_43  city_44  city_45  \\\n",
       "0        0        0        0        0        0        0        0        0   \n",
       "1        0        0        0        0        0        0        0        0   \n",
       "2        0        0        0        0        0        0        0        0   \n",
       "3        0        0        0        0        0        0        0        0   \n",
       "4        0        0        0        0        0        0        0        0   \n",
       "\n",
       "   city_46  city_47  city_48  city_49  city_50  city_51  city_52  city_53  \\\n",
       "0        0        0        0        0        0        0        0        0   \n",
       "1        0        0        0        0        0        0        0        0   \n",
       "2        0        0        0        0        0        0        0        0   \n",
       "3        0        0        0        0        0        0        0        0   \n",
       "4        0        0        0        0        0        0        0        0   \n",
       "\n",
       "   city_54  city_55  city_56  city_57  city_58  city_59  city_60  city_61  \\\n",
       "0        0        0        0        0        0        0        0        0   \n",
       "1        0        0        0        0        0        0        0        0   \n",
       "2        0        0        0        0        0        0        0        0   \n",
       "3        0        0        0        0        0        0        0        0   \n",
       "4        0        0        0        0        0        0        0        0   \n",
       "\n",
       "   city_62  city_63  city_64  city_65  city_66  city_67  city_68  city_69  \\\n",
       "0        0        0        0        0        0        0        0        0   \n",
       "1        0        0        0        0        0        0        0        0   \n",
       "2        0        0        0        0        0        0        0        0   \n",
       "3        0        0        0        0        0        0        0        0   \n",
       "4        0        0        0        0        0        0        0        0   \n",
       "\n",
       "   city_70  city_71  city_72  city_73  city_74  city_75  city_76  city_77  \\\n",
       "0        0        0        0        0        0        0        0        0   \n",
       "1        0        0        0        0        0        0        0        0   \n",
       "2        0        0        0        0        1        0        0        0   \n",
       "3        0        0        0        0        0        0        0        0   \n",
       "4        0        0        0        0        0        0        0        0   \n",
       "\n",
       "   city_78  city_79  city_80  city_81  city_82  city_83  city_84  city_85  \\\n",
       "0        0        0        0        0        0        0        0        0   \n",
       "1        0        0        0        0        0        0        0        0   \n",
       "2        0        0        0        0        0        0        0        0   \n",
       "3        0        0        0        0        0        0        0        0   \n",
       "4        0        0        0        0        0        0        0        0   \n",
       "\n",
       "   city_86  city_87  city_88  city_89  city_90  city_91  city_92  city_93  \\\n",
       "0        0        0        0        0        0        0        0        0   \n",
       "1        0        0        0        0        0        0        0        0   \n",
       "2        0        0        0        0        0        0        0        0   \n",
       "3        0        0        0        0        0        0        0        0   \n",
       "4        0        0        0        0        0        0        0        0   \n",
       "\n",
       "   city_94  city_95  city_96  city_97  city_98  city_99  city_100  city_101  \\\n",
       "0        0        0        0        0        0        0         0         0   \n",
       "1        0        0        0        0        0        0         1         0   \n",
       "2        0        0        0        0        0        0         0         0   \n",
       "3        0        0        0        0        0        0         0         0   \n",
       "4        0        0        0        0        0        0         0         0   \n",
       "\n",
       "   city_102  city_103  city_104  city_105  city_106  city_107  city_108  \\\n",
       "0         0         0         0         0         0         0         0   \n",
       "1         0         0         0         0         0         0         0   \n",
       "2         0         0         0         0         0         0         0   \n",
       "3         0         0         0         0         0         0         0   \n",
       "4         0         0         0         0         0         0         0   \n",
       "\n",
       "   city_109  city_110  city_111  city_112  city_113  city_114  city_115  \\\n",
       "0         0         0         0         0         0         0         0   \n",
       "1         0         0         0         0         0         0         0   \n",
       "2         0         0         0         0         0         0         0   \n",
       "3         0         0         0         0         0         0         0   \n",
       "4         0         0         0         0         0         0         0   \n",
       "\n",
       "   city_116  city_117  city_118  city_119  city_120  city_121  city_122  \\\n",
       "0         0         0         0         0         0         0         0   \n",
       "1         0         0         0         0         0         0         0   \n",
       "2         0         0         0         0         0         0         0   \n",
       "3         0         0         0         0         0         0         0   \n",
       "4         0         0         0         0         0         0         0   \n",
       "\n",
       "   city_123  city_124  city_125  city_126  city_127  city_128  city_129  \\\n",
       "0         0         0         0         0         0         0         0   \n",
       "1         0         0         0         0         0         0         0   \n",
       "2         0         0         0         0         0         0         0   \n",
       "3         0         0         0         0         0         0         0   \n",
       "4         0         0         0         0         0         0         0   \n",
       "\n",
       "   city_130  city_131  city_132  city_133  city_134  city_135  city_136  \\\n",
       "0         0         0         0         0         0         0         0   \n",
       "1         0         0         0         0         0         0         0   \n",
       "2         0         0         0         0         0         0         0   \n",
       "3         0         0         0         0         0         0         0   \n",
       "4         0         0         0         0         0         0         0   \n",
       "\n",
       "   city_137  city_138  city_139  city_140  city_141  city_142  city_143  \\\n",
       "0         0         0         0         0         0         0         0   \n",
       "1         0         0         0         0         0         0         0   \n",
       "2         0         0         0         0         0         0         0   \n",
       "3         0         0         0         0         0         0         0   \n",
       "4         0         0         0         0         0         0         0   \n",
       "\n",
       "   city_144  city_145  city_146  city_147  city_148  city_149  city_150  \\\n",
       "0         0         0         0         0         0         0         0   \n",
       "1         0         0         0         0         0         0         0   \n",
       "2         0         0         0         0         0         0         0   \n",
       "3         0         0         0         0         0         0         0   \n",
       "4         0         0         0         0         0         0         0   \n",
       "\n",
       "   city_151  city_152  city_153  city_154  city_155  city_156  city_157  \\\n",
       "0         0         0         0         0         0         0         0   \n",
       "1         0         0         0         0         0         0         0   \n",
       "2         0         0         0         0         0         0         0   \n",
       "3         0         0         0         0         0         0         0   \n",
       "4         0         0         0         0         0         0         0   \n",
       "\n",
       "   city_158  city_159  city_160  city_161  city_162  city_163  city_164  \\\n",
       "0         0         0         0         0         0         0         0   \n",
       "1         0         0         0         0         0         0         0   \n",
       "2         0         0         0         0         0         0         0   \n",
       "3         0         0         0         0         0         0         0   \n",
       "4         0         0         0         0         0         0         0   \n",
       "\n",
       "   city_165  city_166  city_167  city_168  city_169  city_170  city_171  \\\n",
       "0         0         0         0         0         0         0         0   \n",
       "1         0         0         0         0         0         0         0   \n",
       "2         0         0         0         0         0         0         0   \n",
       "3         0         0         0         0         1         0         0   \n",
       "4         0         0         0         0         0         0         0   \n",
       "\n",
       "   city_172  city_173  city_174  city_175  city_176  city_177  city_178  \\\n",
       "0         0         0         0         0         0         0         0   \n",
       "1         0         0         0         0         0         0         0   \n",
       "2         0         0         0         0         0         0         0   \n",
       "3         0         0         0         0         0         0         0   \n",
       "4         0         0         0         0         0         1         0   \n",
       "\n",
       "   city_179  city_180  city_181  city_182  city_183  city_184  city_185  \\\n",
       "0         0         0         0         0         0         0         0   \n",
       "1         0         0         0         0         0         0         0   \n",
       "2         0         0         0         0         0         0         0   \n",
       "3         0         0         0         0         0         0         0   \n",
       "4         0         0         0         0         0         0         0   \n",
       "\n",
       "   city_186  city_187  city_188  city_189  city_190  city_191  city_192  \\\n",
       "0         0         0         0         0         0         0         0   \n",
       "1         0         0         0         0         0         0         0   \n",
       "2         0         0         0         0         0         0         0   \n",
       "3         0         0         0         0         0         0         0   \n",
       "4         0         0         0         0         0         0         0   \n",
       "\n",
       "   city_193  city_194  city_195  city_196  city_197  city_198  city_199  \\\n",
       "0         0         0         0         0         0         0         0   \n",
       "1         0         0         0         0         0         0         0   \n",
       "2         0         0         0         0         0         0         0   \n",
       "3         0         0         0         0         0         0         0   \n",
       "4         0         0         0         0         0         0         0   \n",
       "\n",
       "   city_200  city_201  city_202  city_203  city_204  city_205  city_206  \\\n",
       "0         0         0         0         0         0         0         0   \n",
       "1         0         0         0         0         0         0         0   \n",
       "2         0         0         0         0         0         0         0   \n",
       "3         0         0         0         0         0         0         0   \n",
       "4         0         0         0         0         0         0         0   \n",
       "\n",
       "   city_207  city_208  city_209  city_210  city_211  city_212  city_213  \\\n",
       "0         0         0         0         0         0         0         0   \n",
       "1         0         0         0         0         0         0         0   \n",
       "2         0         0         0         0         0         0         0   \n",
       "3         0         0         0         0         0         0         0   \n",
       "4         0         0         0         0         0         0         0   \n",
       "\n",
       "   city_214  city_215  city_216  city_217  city_218  city_219  city_220  \\\n",
       "0         0         0         0         0         0         0         0   \n",
       "1         0         0         0         0         0         0         0   \n",
       "2         0         0         0         0         0         0         0   \n",
       "3         0         0         0         0         0         0         0   \n",
       "4         0         0         0         0         0         0         0   \n",
       "\n",
       "   city_221  city_222  city_223  city_224  city_225  city_226  city_227  \\\n",
       "0         0         0         0         0         0         0         0   \n",
       "1         0         0         0         0         0         0         0   \n",
       "2         0         0         0         0         0         0         0   \n",
       "3         0         0         0         0         0         0         0   \n",
       "4         0         0         0         0         0         0         0   \n",
       "\n",
       "   city_228  city_229  city_230  city_231  city_232  city_233  city_234  \\\n",
       "0         0         0         0         0         0         0         0   \n",
       "1         0         0         0         0         0         0         0   \n",
       "2         0         0         0         0         0         0         0   \n",
       "3         0         0         0         0         0         0         0   \n",
       "4         0         0         0         0         0         0         0   \n",
       "\n",
       "   city_235  city_236  city_237  city_238  city_239  city_240  city_241  \\\n",
       "0         0         0         0         0         0         0         0   \n",
       "1         0         0         0         0         0         0         0   \n",
       "2         0         0         0         0         0         0         0   \n",
       "3         0         0         0         0         0         0         0   \n",
       "4         0         0         0         0         0         0         0   \n",
       "\n",
       "   city_242  city_243  city_244  city_245  city_246  city_247  city_248  \\\n",
       "0         0         0         0         0         0         0         0   \n",
       "1         0         0         0         0         0         0         0   \n",
       "2         0         0         0         0         0         0         0   \n",
       "3         0         0         0         0         0         0         0   \n",
       "4         0         0         0         0         0         0         0   \n",
       "\n",
       "   city_249  city_250  city_251  city_252  city_253  city_254  city_255  \\\n",
       "0         0         0         0         0         0         0         0   \n",
       "1         0         0         0         0         0         0         0   \n",
       "2         0         0         0         0         0         0         0   \n",
       "3         0         0         0         0         0         0         0   \n",
       "4         0         0         0         0         0         0         0   \n",
       "\n",
       "   city_256  city_257  city_258  city_259  city_260  city_261  city_262  \\\n",
       "0         0         0         0         0         0         0         0   \n",
       "1         0         0         0         0         0         0         0   \n",
       "2         0         0         0         0         0         0         0   \n",
       "3         0         0         0         0         0         0         0   \n",
       "4         0         0         0         0         0         0         0   \n",
       "\n",
       "   city_263  city_264  city_265  city_266  city_267  city_268  city_269  \\\n",
       "0         0         0         0         0         0         0         1   \n",
       "1         0         0         0         0         0         0         0   \n",
       "2         0         0         0         0         0         0         0   \n",
       "3         0         0         0         0         0         0         0   \n",
       "4         0         0         0         0         0         0         0   \n",
       "\n",
       "   city_270  city_271  city_272  city_273  city_274  city_275  city_276  \\\n",
       "0         0         0         0         0         0         0         0   \n",
       "1         0         0         0         0         0         0         0   \n",
       "2         0         0         0         0         0         0         0   \n",
       "3         0         0         0         0         0         0         0   \n",
       "4         0         0         0         0         0         0         0   \n",
       "\n",
       "   city_277  city_278  city_279  city_280  city_281  city_282  city_283  \\\n",
       "0         0         0         0         0         0         0         0   \n",
       "1         0         0         0         0         0         0         0   \n",
       "2         0         0         0         0         0         0         0   \n",
       "3         0         0         0         0         0         0         0   \n",
       "4         0         0         0         0         0         0         0   \n",
       "\n",
       "   city_284  city_285  city_286  city_287  city_288  city_289  city_290  \\\n",
       "0         0         0         0         0         0         0         0   \n",
       "1         0         0         0         0         0         0         0   \n",
       "2         0         0         0         0         0         0         0   \n",
       "3         0         0         0         0         0         0         0   \n",
       "4         0         0         0         0         0         0         0   \n",
       "\n",
       "   city_291  city_292  city_293  city_294  city_295  city_296  city_297  \\\n",
       "0         0         0         0         0         0         0         0   \n",
       "1         0         0         0         0         0         0         0   \n",
       "2         0         0         0         0         0         0         0   \n",
       "3         0         0         0         0         0         0         0   \n",
       "4         0         0         0         0         0         0         0   \n",
       "\n",
       "   city_298  city_299  city_300  city_301  city_302  city_303  city_304  \\\n",
       "0         0         0         0         0         0         0         0   \n",
       "1         0         0         0         0         0         0         0   \n",
       "2         0         0         0         0         0         0         0   \n",
       "3         0         0         0         0         0         0         0   \n",
       "4         0         0         0         0         0         0         0   \n",
       "\n",
       "   city_305  city_306  city_307  city_308  city_309  city_310  city_311  \\\n",
       "0         0         0         0         0         0         0         0   \n",
       "1         0         0         0         0         0         0         0   \n",
       "2         0         0         0         0         0         0         0   \n",
       "3         0         0         0         0         0         0         0   \n",
       "4         0         0         0         0         0         0         0   \n",
       "\n",
       "   city_312  city_313  city_314  city_315  city_316  city_317  city_318  \\\n",
       "0         0         0         0         0         0         0         0   \n",
       "1         0         0         0         0         0         0         0   \n",
       "2         0         0         0         0         0         0         0   \n",
       "3         0         0         0         0         0         0         0   \n",
       "4         0         0         0         0         0         0         0   \n",
       "\n",
       "   city_319  city_320  city_321  city_322  city_323  city_324  city_325  \\\n",
       "0         0         0         0         0         0         0         0   \n",
       "1         0         0         0         0         0         0         0   \n",
       "2         0         0         0         0         0         0         0   \n",
       "3         0         0         0         0         0         0         0   \n",
       "4         0         0         0         0         0         0         0   \n",
       "\n",
       "   city_326  city_327  city_328  city_329  city_330  city_331  city_332  \\\n",
       "0         0         0         0         0         0         0         0   \n",
       "1         0         0         0         0         0         0         0   \n",
       "2         0         0         0         0         0         0         0   \n",
       "3         0         0         0         0         0         0         0   \n",
       "4         0         0         0         0         0         0         0   \n",
       "\n",
       "   city_333  city_334  city_335  city_336  city_337  city_338  is_vip_-99  \\\n",
       "0         0         0         0         0         0         0           1   \n",
       "1         0         0         0         0         0         0           1   \n",
       "2         0         0         0         0         0         0           1   \n",
       "3         0         0         0         0         0         0           1   \n",
       "4         0         0         0         0         0         0           1   \n",
       "\n",
       "   is_vip_0  is_vip_1  \n",
       "0         0         0  \n",
       "1         0         0  \n",
       "2         0         0  \n",
       "3         0         0  \n",
       "4         0         0  "
      ]
     },
     "execution_count": 163,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#特征工程\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "#显示所有列，把行显示设置成最大\n",
    "pd.set_option('display.max_columns', None)\n",
    "#显示所有行，把列显示设置成最大\n",
    "pd.set_option('display.max_rows', None)\n",
    "from collections import Counter\n",
    "user_data_df['pages_most']=user_data_df['pages_seq'].map(lambda x:Counter(x).most_common(1)[0][0])\n",
    "user_data_df['actions_most']=user_data_df['actions_seq'].map(lambda x:Counter(x).most_common(1)[0][0])\n",
    "\n",
    "#类别特征：使用onehot处理\n",
    "onehot_names=['channel_most','pages_most','actions_most','user_type','gender','device','city','is_vip']\n",
    "for x in onehot_names:\n",
    "    user_data_df[x].fillna(-99, inplace=True)\n",
    "    user_data_df[x]=user_data_df[x].map(int)\n",
    "onehot_df = pd.get_dummies(user_data_df.loc[:,onehot_names],columns=onehot_names)\n",
    "onehot_df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 165,
   "id": "35740c69",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>device_id</th>\n",
       "      <th>day_max</th>\n",
       "      <th>day_len</th>\n",
       "      <th>channel_unique</th>\n",
       "      <th>actions_unique</th>\n",
       "      <th>pages_unique</th>\n",
       "      <th>pages_len</th>\n",
       "      <th>music_ids_unique</th>\n",
       "      <th>artist_id_unique</th>\n",
       "      <th>is_paid_sum</th>\n",
       "      <th>comment_cnt_sum</th>\n",
       "      <th>style_most_name</th>\n",
       "      <th>dim1_x</th>\n",
       "      <th>dim2_x</th>\n",
       "      <th>channel_most_day</th>\n",
       "      <th>channel_unique_day</th>\n",
       "      <th>actions_unique_day</th>\n",
       "      <th>pages_unique_day</th>\n",
       "      <th>pages_len_day</th>\n",
       "      <th>music_ids_unique_day</th>\n",
       "      <th>artist_id_unique_day</th>\n",
       "      <th>is_paid_sum_day</th>\n",
       "      <th>comment_cnt_sum_day</th>\n",
       "      <th>age</th>\n",
       "      <th>topics</th>\n",
       "      <th>dim1_y</th>\n",
       "      <th>dim2_y</th>\n",
       "      <th>days_list</th>\n",
       "      <th>is_churn</th>\n",
       "      <th>pages_seq</th>\n",
       "      <th>music_ids_seq</th>\n",
       "      <th>actions_seq</th>\n",
       "      <th>channel_most_0</th>\n",
       "      <th>channel_most_1</th>\n",
       "      <th>channel_most_2</th>\n",
       "      <th>channel_most_3</th>\n",
       "      <th>channel_most_5</th>\n",
       "      <th>channel_most_6</th>\n",
       "      <th>channel_most_8</th>\n",
       "      <th>channel_most_9</th>\n",
       "      <th>channel_most_11</th>\n",
       "      <th>channel_most_12</th>\n",
       "      <th>channel_most_13</th>\n",
       "      <th>channel_most_14</th>\n",
       "      <th>channel_most_15</th>\n",
       "      <th>channel_most_16</th>\n",
       "      <th>channel_most_18</th>\n",
       "      <th>channel_most_28</th>\n",
       "      <th>channel_most_31</th>\n",
       "      <th>channel_most_32</th>\n",
       "      <th>channel_most_37</th>\n",
       "      <th>channel_most_38</th>\n",
       "      <th>channel_most_44</th>\n",
       "      <th>channel_most_46</th>\n",
       "      <th>channel_most_48</th>\n",
       "      <th>channel_most_49</th>\n",
       "      <th>channel_most_51</th>\n",
       "      <th>channel_most_55</th>\n",
       "      <th>channel_most_56</th>\n",
       "      <th>channel_most_58</th>\n",
       "      <th>channel_most_59</th>\n",
       "      <th>channel_most_62</th>\n",
       "      <th>channel_most_70</th>\n",
       "      <th>pages_most_0</th>\n",
       "      <th>pages_most_7</th>\n",
       "      <th>pages_most_9</th>\n",
       "      <th>pages_most_16</th>\n",
       "      <th>pages_most_18</th>\n",
       "      <th>pages_most_19</th>\n",
       "      <th>pages_most_20</th>\n",
       "      <th>pages_most_21</th>\n",
       "      <th>pages_most_26</th>\n",
       "      <th>pages_most_28</th>\n",
       "      <th>pages_most_29</th>\n",
       "      <th>pages_most_30</th>\n",
       "      <th>pages_most_32</th>\n",
       "      <th>pages_most_34</th>\n",
       "      <th>pages_most_36</th>\n",
       "      <th>pages_most_38</th>\n",
       "      <th>pages_most_45</th>\n",
       "      <th>pages_most_47</th>\n",
       "      <th>actions_most_1</th>\n",
       "      <th>actions_most_2</th>\n",
       "      <th>actions_most_3</th>\n",
       "      <th>actions_most_4</th>\n",
       "      <th>actions_most_5</th>\n",
       "      <th>actions_most_6</th>\n",
       "      <th>actions_most_7</th>\n",
       "      <th>actions_most_8</th>\n",
       "      <th>user_type_0</th>\n",
       "      <th>user_type_1</th>\n",
       "      <th>user_type_2</th>\n",
       "      <th>user_type_3</th>\n",
       "      <th>user_type_4</th>\n",
       "      <th>user_type_5</th>\n",
       "      <th>gender_-99</th>\n",
       "      <th>gender_0</th>\n",
       "      <th>gender_1</th>\n",
       "      <th>device_1</th>\n",
       "      <th>device_2</th>\n",
       "      <th>device_5</th>\n",
       "      <th>device_7</th>\n",
       "      <th>device_8</th>\n",
       "      <th>device_9</th>\n",
       "      <th>device_10</th>\n",
       "      <th>device_11</th>\n",
       "      <th>device_12</th>\n",
       "      <th>device_13</th>\n",
       "      <th>device_14</th>\n",
       "      <th>device_16</th>\n",
       "      <th>device_17</th>\n",
       "      <th>device_18</th>\n",
       "      <th>device_19</th>\n",
       "      <th>device_20</th>\n",
       "      <th>device_21</th>\n",
       "      <th>device_23</th>\n",
       "      <th>device_24</th>\n",
       "      <th>device_25</th>\n",
       "      <th>device_26</th>\n",
       "      <th>device_27</th>\n",
       "      <th>device_28</th>\n",
       "      <th>device_29</th>\n",
       "      <th>device_30</th>\n",
       "      <th>device_31</th>\n",
       "      <th>device_32</th>\n",
       "      <th>device_33</th>\n",
       "      <th>device_34</th>\n",
       "      <th>device_35</th>\n",
       "      <th>device_36</th>\n",
       "      <th>device_37</th>\n",
       "      <th>device_39</th>\n",
       "      <th>device_40</th>\n",
       "      <th>device_41</th>\n",
       "      <th>device_42</th>\n",
       "      <th>device_43</th>\n",
       "      <th>device_49</th>\n",
       "      <th>device_50</th>\n",
       "      <th>device_51</th>\n",
       "      <th>device_52</th>\n",
       "      <th>device_53</th>\n",
       "      <th>device_54</th>\n",
       "      <th>device_55</th>\n",
       "      <th>device_57</th>\n",
       "      <th>device_58</th>\n",
       "      <th>device_59</th>\n",
       "      <th>device_60</th>\n",
       "      <th>device_63</th>\n",
       "      <th>device_64</th>\n",
       "      <th>device_65</th>\n",
       "      <th>device_66</th>\n",
       "      <th>device_69</th>\n",
       "      <th>device_70</th>\n",
       "      <th>device_72</th>\n",
       "      <th>device_74</th>\n",
       "      <th>device_75</th>\n",
       "      <th>device_85</th>\n",
       "      <th>device_89</th>\n",
       "      <th>device_92</th>\n",
       "      <th>device_100</th>\n",
       "      <th>device_101</th>\n",
       "      <th>device_152</th>\n",
       "      <th>device_157</th>\n",
       "      <th>device_158</th>\n",
       "      <th>device_160</th>\n",
       "      <th>device_161</th>\n",
       "      <th>device_162</th>\n",
       "      <th>device_163</th>\n",
       "      <th>device_166</th>\n",
       "      <th>device_167</th>\n",
       "      <th>device_171</th>\n",
       "      <th>device_172</th>\n",
       "      <th>device_174</th>\n",
       "      <th>device_175</th>\n",
       "      <th>device_176</th>\n",
       "      <th>device_177</th>\n",
       "      <th>device_178</th>\n",
       "      <th>device_179</th>\n",
       "      <th>device_180</th>\n",
       "      <th>device_181</th>\n",
       "      <th>device_184</th>\n",
       "      <th>device_186</th>\n",
       "      <th>device_192</th>\n",
       "      <th>device_195</th>\n",
       "      <th>device_202</th>\n",
       "      <th>device_204</th>\n",
       "      <th>device_205</th>\n",
       "      <th>device_206</th>\n",
       "      <th>device_207</th>\n",
       "      <th>device_208</th>\n",
       "      <th>device_209</th>\n",
       "      <th>device_210</th>\n",
       "      <th>device_212</th>\n",
       "      <th>device_214</th>\n",
       "      <th>device_215</th>\n",
       "      <th>device_216</th>\n",
       "      <th>device_217</th>\n",
       "      <th>device_218</th>\n",
       "      <th>device_219</th>\n",
       "      <th>device_220</th>\n",
       "      <th>device_221</th>\n",
       "      <th>device_222</th>\n",
       "      <th>device_223</th>\n",
       "      <th>device_224</th>\n",
       "      <th>device_225</th>\n",
       "      <th>device_226</th>\n",
       "      <th>device_227</th>\n",
       "      <th>device_228</th>\n",
       "      <th>device_229</th>\n",
       "      <th>device_230</th>\n",
       "      <th>device_231</th>\n",
       "      <th>device_232</th>\n",
       "      <th>device_233</th>\n",
       "      <th>device_234</th>\n",
       "      <th>device_235</th>\n",
       "      <th>device_241</th>\n",
       "      <th>device_242</th>\n",
       "      <th>device_244</th>\n",
       "      <th>device_245</th>\n",
       "      <th>device_246</th>\n",
       "      <th>device_247</th>\n",
       "      <th>device_248</th>\n",
       "      <th>device_249</th>\n",
       "      <th>device_250</th>\n",
       "      <th>device_251</th>\n",
       "      <th>device_252</th>\n",
       "      <th>device_253</th>\n",
       "      <th>device_254</th>\n",
       "      <th>device_255</th>\n",
       "      <th>device_267</th>\n",
       "      <th>device_268</th>\n",
       "      <th>device_269</th>\n",
       "      <th>device_270</th>\n",
       "      <th>device_271</th>\n",
       "      <th>device_272</th>\n",
       "      <th>device_275</th>\n",
       "      <th>device_276</th>\n",
       "      <th>device_277</th>\n",
       "      <th>device_278</th>\n",
       "      <th>device_280</th>\n",
       "      <th>device_281</th>\n",
       "      <th>device_282</th>\n",
       "      <th>device_283</th>\n",
       "      <th>device_285</th>\n",
       "      <th>device_286</th>\n",
       "      <th>device_287</th>\n",
       "      <th>device_289</th>\n",
       "      <th>device_290</th>\n",
       "      <th>device_291</th>\n",
       "      <th>device_292</th>\n",
       "      <th>device_293</th>\n",
       "      <th>device_294</th>\n",
       "      <th>device_295</th>\n",
       "      <th>device_296</th>\n",
       "      <th>device_298</th>\n",
       "      <th>device_299</th>\n",
       "      <th>device_300</th>\n",
       "      <th>device_301</th>\n",
       "      <th>device_302</th>\n",
       "      <th>device_303</th>\n",
       "      <th>device_304</th>\n",
       "      <th>device_305</th>\n",
       "      <th>device_306</th>\n",
       "      <th>device_307</th>\n",
       "      <th>device_308</th>\n",
       "      <th>device_309</th>\n",
       "      <th>device_311</th>\n",
       "      <th>device_319</th>\n",
       "      <th>device_327</th>\n",
       "      <th>device_328</th>\n",
       "      <th>device_334</th>\n",
       "      <th>device_335</th>\n",
       "      <th>device_337</th>\n",
       "      <th>device_339</th>\n",
       "      <th>device_343</th>\n",
       "      <th>device_379</th>\n",
       "      <th>device_397</th>\n",
       "      <th>device_399</th>\n",
       "      <th>device_401</th>\n",
       "      <th>device_416</th>\n",
       "      <th>device_417</th>\n",
       "      <th>device_418</th>\n",
       "      <th>device_419</th>\n",
       "      <th>device_420</th>\n",
       "      <th>device_421</th>\n",
       "      <th>device_422</th>\n",
       "      <th>device_423</th>\n",
       "      <th>device_424</th>\n",
       "      <th>device_425</th>\n",
       "      <th>device_426</th>\n",
       "      <th>device_427</th>\n",
       "      <th>device_428</th>\n",
       "      <th>device_429</th>\n",
       "      <th>device_430</th>\n",
       "      <th>device_431</th>\n",
       "      <th>device_432</th>\n",
       "      <th>device_433</th>\n",
       "      <th>device_434</th>\n",
       "      <th>device_435</th>\n",
       "      <th>device_443</th>\n",
       "      <th>device_444</th>\n",
       "      <th>device_445</th>\n",
       "      <th>device_446</th>\n",
       "      <th>device_447</th>\n",
       "      <th>device_448</th>\n",
       "      <th>device_449</th>\n",
       "      <th>device_450</th>\n",
       "      <th>device_451</th>\n",
       "      <th>device_456</th>\n",
       "      <th>device_457</th>\n",
       "      <th>device_458</th>\n",
       "      <th>device_459</th>\n",
       "      <th>device_460</th>\n",
       "      <th>device_464</th>\n",
       "      <th>device_465</th>\n",
       "      <th>device_466</th>\n",
       "      <th>device_468</th>\n",
       "      <th>device_470</th>\n",
       "      <th>device_471</th>\n",
       "      <th>device_472</th>\n",
       "      <th>device_473</th>\n",
       "      <th>device_474</th>\n",
       "      <th>device_476</th>\n",
       "      <th>device_477</th>\n",
       "      <th>device_478</th>\n",
       "      <th>device_479</th>\n",
       "      <th>device_480</th>\n",
       "      <th>device_481</th>\n",
       "      <th>device_482</th>\n",
       "      <th>device_483</th>\n",
       "      <th>device_489</th>\n",
       "      <th>device_490</th>\n",
       "      <th>device_492</th>\n",
       "      <th>device_504</th>\n",
       "      <th>device_505</th>\n",
       "      <th>device_509</th>\n",
       "      <th>device_511</th>\n",
       "      <th>device_512</th>\n",
       "      <th>device_513</th>\n",
       "      <th>device_514</th>\n",
       "      <th>device_516</th>\n",
       "      <th>device_517</th>\n",
       "      <th>device_519</th>\n",
       "      <th>device_520</th>\n",
       "      <th>device_522</th>\n",
       "      <th>device_524</th>\n",
       "      <th>device_527</th>\n",
       "      <th>device_528</th>\n",
       "      <th>device_530</th>\n",
       "      <th>device_532</th>\n",
       "      <th>device_533</th>\n",
       "      <th>device_534</th>\n",
       "      <th>device_536</th>\n",
       "      <th>device_538</th>\n",
       "      <th>device_539</th>\n",
       "      <th>device_541</th>\n",
       "      <th>device_542</th>\n",
       "      <th>device_543</th>\n",
       "      <th>device_544</th>\n",
       "      <th>device_549</th>\n",
       "      <th>device_551</th>\n",
       "      <th>city_1</th>\n",
       "      <th>city_2</th>\n",
       "      <th>city_3</th>\n",
       "      <th>city_4</th>\n",
       "      <th>city_5</th>\n",
       "      <th>city_6</th>\n",
       "      <th>city_7</th>\n",
       "      <th>city_8</th>\n",
       "      <th>city_9</th>\n",
       "      <th>city_10</th>\n",
       "      <th>city_11</th>\n",
       "      <th>city_12</th>\n",
       "      <th>city_13</th>\n",
       "      <th>city_14</th>\n",
       "      <th>city_15</th>\n",
       "      <th>city_16</th>\n",
       "      <th>city_17</th>\n",
       "      <th>city_18</th>\n",
       "      <th>city_19</th>\n",
       "      <th>city_20</th>\n",
       "      <th>city_21</th>\n",
       "      <th>city_22</th>\n",
       "      <th>city_23</th>\n",
       "      <th>city_24</th>\n",
       "      <th>city_25</th>\n",
       "      <th>city_26</th>\n",
       "      <th>city_27</th>\n",
       "      <th>city_28</th>\n",
       "      <th>city_29</th>\n",
       "      <th>city_30</th>\n",
       "      <th>city_31</th>\n",
       "      <th>city_32</th>\n",
       "      <th>city_33</th>\n",
       "      <th>city_34</th>\n",
       "      <th>city_35</th>\n",
       "      <th>city_36</th>\n",
       "      <th>city_37</th>\n",
       "      <th>city_38</th>\n",
       "      <th>city_39</th>\n",
       "      <th>city_40</th>\n",
       "      <th>city_41</th>\n",
       "      <th>city_42</th>\n",
       "      <th>city_43</th>\n",
       "      <th>city_44</th>\n",
       "      <th>city_45</th>\n",
       "      <th>city_46</th>\n",
       "      <th>city_47</th>\n",
       "      <th>city_48</th>\n",
       "      <th>city_49</th>\n",
       "      <th>city_50</th>\n",
       "      <th>city_51</th>\n",
       "      <th>city_52</th>\n",
       "      <th>city_53</th>\n",
       "      <th>city_54</th>\n",
       "      <th>city_55</th>\n",
       "      <th>city_56</th>\n",
       "      <th>city_57</th>\n",
       "      <th>city_58</th>\n",
       "      <th>city_59</th>\n",
       "      <th>city_60</th>\n",
       "      <th>city_61</th>\n",
       "      <th>city_62</th>\n",
       "      <th>city_63</th>\n",
       "      <th>city_64</th>\n",
       "      <th>city_65</th>\n",
       "      <th>city_66</th>\n",
       "      <th>city_67</th>\n",
       "      <th>city_68</th>\n",
       "      <th>city_69</th>\n",
       "      <th>city_70</th>\n",
       "      <th>city_71</th>\n",
       "      <th>city_72</th>\n",
       "      <th>city_73</th>\n",
       "      <th>city_74</th>\n",
       "      <th>city_75</th>\n",
       "      <th>city_76</th>\n",
       "      <th>city_77</th>\n",
       "      <th>city_78</th>\n",
       "      <th>city_79</th>\n",
       "      <th>city_80</th>\n",
       "      <th>city_81</th>\n",
       "      <th>city_82</th>\n",
       "      <th>city_83</th>\n",
       "      <th>city_84</th>\n",
       "      <th>city_85</th>\n",
       "      <th>city_86</th>\n",
       "      <th>city_87</th>\n",
       "      <th>city_88</th>\n",
       "      <th>city_89</th>\n",
       "      <th>city_90</th>\n",
       "      <th>city_91</th>\n",
       "      <th>city_92</th>\n",
       "      <th>city_93</th>\n",
       "      <th>city_94</th>\n",
       "      <th>city_95</th>\n",
       "      <th>city_96</th>\n",
       "      <th>city_97</th>\n",
       "      <th>city_98</th>\n",
       "      <th>city_99</th>\n",
       "      <th>city_100</th>\n",
       "      <th>city_101</th>\n",
       "      <th>city_102</th>\n",
       "      <th>city_103</th>\n",
       "      <th>city_104</th>\n",
       "      <th>city_105</th>\n",
       "      <th>city_106</th>\n",
       "      <th>city_107</th>\n",
       "      <th>city_108</th>\n",
       "      <th>city_109</th>\n",
       "      <th>city_110</th>\n",
       "      <th>city_111</th>\n",
       "      <th>city_112</th>\n",
       "      <th>city_113</th>\n",
       "      <th>city_114</th>\n",
       "      <th>city_115</th>\n",
       "      <th>city_116</th>\n",
       "      <th>city_117</th>\n",
       "      <th>city_118</th>\n",
       "      <th>city_119</th>\n",
       "      <th>city_120</th>\n",
       "      <th>city_121</th>\n",
       "      <th>city_122</th>\n",
       "      <th>city_123</th>\n",
       "      <th>city_124</th>\n",
       "      <th>city_125</th>\n",
       "      <th>city_126</th>\n",
       "      <th>city_127</th>\n",
       "      <th>city_128</th>\n",
       "      <th>city_129</th>\n",
       "      <th>city_130</th>\n",
       "      <th>city_131</th>\n",
       "      <th>city_132</th>\n",
       "      <th>city_133</th>\n",
       "      <th>city_134</th>\n",
       "      <th>city_135</th>\n",
       "      <th>city_136</th>\n",
       "      <th>city_137</th>\n",
       "      <th>city_138</th>\n",
       "      <th>city_139</th>\n",
       "      <th>city_140</th>\n",
       "      <th>city_141</th>\n",
       "      <th>city_142</th>\n",
       "      <th>city_143</th>\n",
       "      <th>city_144</th>\n",
       "      <th>city_145</th>\n",
       "      <th>city_146</th>\n",
       "      <th>city_147</th>\n",
       "      <th>city_148</th>\n",
       "      <th>city_149</th>\n",
       "      <th>city_150</th>\n",
       "      <th>city_151</th>\n",
       "      <th>city_152</th>\n",
       "      <th>city_153</th>\n",
       "      <th>city_154</th>\n",
       "      <th>city_155</th>\n",
       "      <th>city_156</th>\n",
       "      <th>city_157</th>\n",
       "      <th>city_158</th>\n",
       "      <th>city_159</th>\n",
       "      <th>city_160</th>\n",
       "      <th>city_161</th>\n",
       "      <th>city_162</th>\n",
       "      <th>city_163</th>\n",
       "      <th>city_164</th>\n",
       "      <th>city_165</th>\n",
       "      <th>city_166</th>\n",
       "      <th>city_167</th>\n",
       "      <th>city_168</th>\n",
       "      <th>city_169</th>\n",
       "      <th>city_170</th>\n",
       "      <th>city_171</th>\n",
       "      <th>city_172</th>\n",
       "      <th>city_173</th>\n",
       "      <th>city_174</th>\n",
       "      <th>city_175</th>\n",
       "      <th>city_176</th>\n",
       "      <th>city_177</th>\n",
       "      <th>city_178</th>\n",
       "      <th>city_179</th>\n",
       "      <th>city_180</th>\n",
       "      <th>city_181</th>\n",
       "      <th>city_182</th>\n",
       "      <th>city_183</th>\n",
       "      <th>city_184</th>\n",
       "      <th>city_185</th>\n",
       "      <th>city_186</th>\n",
       "      <th>city_187</th>\n",
       "      <th>city_188</th>\n",
       "      <th>city_189</th>\n",
       "      <th>city_190</th>\n",
       "      <th>city_191</th>\n",
       "      <th>city_192</th>\n",
       "      <th>city_193</th>\n",
       "      <th>city_194</th>\n",
       "      <th>city_195</th>\n",
       "      <th>city_196</th>\n",
       "      <th>city_197</th>\n",
       "      <th>city_198</th>\n",
       "      <th>city_199</th>\n",
       "      <th>city_200</th>\n",
       "      <th>city_201</th>\n",
       "      <th>city_202</th>\n",
       "      <th>city_203</th>\n",
       "      <th>city_204</th>\n",
       "      <th>city_205</th>\n",
       "      <th>city_206</th>\n",
       "      <th>city_207</th>\n",
       "      <th>city_208</th>\n",
       "      <th>city_209</th>\n",
       "      <th>city_210</th>\n",
       "      <th>city_211</th>\n",
       "      <th>city_212</th>\n",
       "      <th>city_213</th>\n",
       "      <th>city_214</th>\n",
       "      <th>city_215</th>\n",
       "      <th>city_216</th>\n",
       "      <th>city_217</th>\n",
       "      <th>city_218</th>\n",
       "      <th>city_219</th>\n",
       "      <th>city_220</th>\n",
       "      <th>city_221</th>\n",
       "      <th>city_222</th>\n",
       "      <th>city_223</th>\n",
       "      <th>city_224</th>\n",
       "      <th>city_225</th>\n",
       "      <th>city_226</th>\n",
       "      <th>city_227</th>\n",
       "      <th>city_228</th>\n",
       "      <th>city_229</th>\n",
       "      <th>city_230</th>\n",
       "      <th>city_231</th>\n",
       "      <th>city_232</th>\n",
       "      <th>city_233</th>\n",
       "      <th>city_234</th>\n",
       "      <th>city_235</th>\n",
       "      <th>city_236</th>\n",
       "      <th>city_237</th>\n",
       "      <th>city_238</th>\n",
       "      <th>city_239</th>\n",
       "      <th>city_240</th>\n",
       "      <th>city_241</th>\n",
       "      <th>city_242</th>\n",
       "      <th>city_243</th>\n",
       "      <th>city_244</th>\n",
       "      <th>city_245</th>\n",
       "      <th>city_246</th>\n",
       "      <th>city_247</th>\n",
       "      <th>city_248</th>\n",
       "      <th>city_249</th>\n",
       "      <th>city_250</th>\n",
       "      <th>city_251</th>\n",
       "      <th>city_252</th>\n",
       "      <th>city_253</th>\n",
       "      <th>city_254</th>\n",
       "      <th>city_255</th>\n",
       "      <th>city_256</th>\n",
       "      <th>city_257</th>\n",
       "      <th>city_258</th>\n",
       "      <th>city_259</th>\n",
       "      <th>city_260</th>\n",
       "      <th>city_261</th>\n",
       "      <th>city_262</th>\n",
       "      <th>city_263</th>\n",
       "      <th>city_264</th>\n",
       "      <th>city_265</th>\n",
       "      <th>city_266</th>\n",
       "      <th>city_267</th>\n",
       "      <th>city_268</th>\n",
       "      <th>city_269</th>\n",
       "      <th>city_270</th>\n",
       "      <th>city_271</th>\n",
       "      <th>city_272</th>\n",
       "      <th>city_273</th>\n",
       "      <th>city_274</th>\n",
       "      <th>city_275</th>\n",
       "      <th>city_276</th>\n",
       "      <th>city_277</th>\n",
       "      <th>city_278</th>\n",
       "      <th>city_279</th>\n",
       "      <th>city_280</th>\n",
       "      <th>city_281</th>\n",
       "      <th>city_282</th>\n",
       "      <th>city_283</th>\n",
       "      <th>city_284</th>\n",
       "      <th>city_285</th>\n",
       "      <th>city_286</th>\n",
       "      <th>city_287</th>\n",
       "      <th>city_288</th>\n",
       "      <th>city_289</th>\n",
       "      <th>city_290</th>\n",
       "      <th>city_291</th>\n",
       "      <th>city_292</th>\n",
       "      <th>city_293</th>\n",
       "      <th>city_294</th>\n",
       "      <th>city_295</th>\n",
       "      <th>city_296</th>\n",
       "      <th>city_297</th>\n",
       "      <th>city_298</th>\n",
       "      <th>city_299</th>\n",
       "      <th>city_300</th>\n",
       "      <th>city_301</th>\n",
       "      <th>city_302</th>\n",
       "      <th>city_303</th>\n",
       "      <th>city_304</th>\n",
       "      <th>city_305</th>\n",
       "      <th>city_306</th>\n",
       "      <th>city_307</th>\n",
       "      <th>city_308</th>\n",
       "      <th>city_309</th>\n",
       "      <th>city_310</th>\n",
       "      <th>city_311</th>\n",
       "      <th>city_312</th>\n",
       "      <th>city_313</th>\n",
       "      <th>city_314</th>\n",
       "      <th>city_315</th>\n",
       "      <th>city_316</th>\n",
       "      <th>city_317</th>\n",
       "      <th>city_318</th>\n",
       "      <th>city_319</th>\n",
       "      <th>city_320</th>\n",
       "      <th>city_321</th>\n",
       "      <th>city_322</th>\n",
       "      <th>city_323</th>\n",
       "      <th>city_324</th>\n",
       "      <th>city_325</th>\n",
       "      <th>city_326</th>\n",
       "      <th>city_327</th>\n",
       "      <th>city_328</th>\n",
       "      <th>city_329</th>\n",
       "      <th>city_330</th>\n",
       "      <th>city_331</th>\n",
       "      <th>city_332</th>\n",
       "      <th>city_333</th>\n",
       "      <th>city_334</th>\n",
       "      <th>city_335</th>\n",
       "      <th>city_336</th>\n",
       "      <th>city_337</th>\n",
       "      <th>city_338</th>\n",
       "      <th>is_vip_-99</th>\n",
       "      <th>is_vip_0</th>\n",
       "      <th>is_vip_1</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2452</td>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>4</td>\n",
       "      <td>25</td>\n",
       "      <td>23</td>\n",
       "      <td>17</td>\n",
       "      <td>21.0</td>\n",
       "      <td>2090</td>\n",
       "      <td>流行</td>\n",
       "      <td>-24.092134</td>\n",
       "      <td>-15.032055</td>\n",
       "      <td>5.0</td>\n",
       "      <td>1.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td>4.0</td>\n",
       "      <td>25.0</td>\n",
       "      <td>23.0</td>\n",
       "      <td>17.0</td>\n",
       "      <td>21.0</td>\n",
       "      <td>2090.0</td>\n",
       "      <td>3.0</td>\n",
       "      <td></td>\n",
       "      <td>31.879169</td>\n",
       "      <td>10.558841</td>\n",
       "      <td>[4]</td>\n",
       "      <td>1</td>\n",
       "      <td>[16, 16, 16, 16, 16, 16, 18, 16, 16, 16, 16, 1...</td>\n",
       "      <td>[9266462, 10274802, 5284244, 7887489, 6904175,...</td>\n",
       "      <td>[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ...</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>7181</td>\n",
       "      <td>16</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>15</td>\n",
       "      <td>7</td>\n",
       "      <td>7</td>\n",
       "      <td>13.0</td>\n",
       "      <td>306775</td>\n",
       "      <td>流行</td>\n",
       "      <td>-24.092134</td>\n",
       "      <td>-15.032055</td>\n",
       "      <td>2.5</td>\n",
       "      <td>0.5</td>\n",
       "      <td>0.5</td>\n",
       "      <td>0.5</td>\n",
       "      <td>7.5</td>\n",
       "      <td>3.5</td>\n",
       "      <td>3.5</td>\n",
       "      <td>6.5</td>\n",
       "      <td>153387.5</td>\n",
       "      <td>NaN</td>\n",
       "      <td></td>\n",
       "      <td>31.879169</td>\n",
       "      <td>10.558841</td>\n",
       "      <td>[1, 2, 7, 16, 25]</td>\n",
       "      <td>1</td>\n",
       "      <td>[32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 3...</td>\n",
       "      <td>[1977322, 1977322, 1977322, 1977322, 1977322, ...</td>\n",
       "      <td>[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   device_id  day_max  day_len  channel_unique  actions_unique  pages_unique  \\\n",
       "0       2452        4        1               1               3             4   \n",
       "1       7181       16        2               1               1             1   \n",
       "\n",
       "   pages_len  music_ids_unique  artist_id_unique  is_paid_sum  \\\n",
       "0         25                23                17         21.0   \n",
       "1         15                 7                 7         13.0   \n",
       "\n",
       "   comment_cnt_sum style_most_name     dim1_x     dim2_x  channel_most_day  \\\n",
       "0             2090              流行 -24.092134 -15.032055               5.0   \n",
       "1           306775              流行 -24.092134 -15.032055               2.5   \n",
       "\n",
       "   channel_unique_day  actions_unique_day  pages_unique_day  pages_len_day  \\\n",
       "0                 1.0                 3.0               4.0           25.0   \n",
       "1                 0.5                 0.5               0.5            7.5   \n",
       "\n",
       "   music_ids_unique_day  artist_id_unique_day  is_paid_sum_day  \\\n",
       "0                  23.0                  17.0             21.0   \n",
       "1                   3.5                   3.5              6.5   \n",
       "\n",
       "   comment_cnt_sum_day  age topics     dim1_y     dim2_y          days_list  \\\n",
       "0               2090.0  3.0         31.879169  10.558841                [4]   \n",
       "1             153387.5  NaN         31.879169  10.558841  [1, 2, 7, 16, 25]   \n",
       "\n",
       "   is_churn                                          pages_seq  \\\n",
       "0         1  [16, 16, 16, 16, 16, 16, 18, 16, 16, 16, 16, 1...   \n",
       "1         1  [32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 3...   \n",
       "\n",
       "                                       music_ids_seq  \\\n",
       "0  [9266462, 10274802, 5284244, 7887489, 6904175,...   \n",
       "1  [1977322, 1977322, 1977322, 1977322, 1977322, ...   \n",
       "\n",
       "                                         actions_seq  channel_most_0  \\\n",
       "0  [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, ...               0   \n",
       "1      [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1]               0   \n",
       "\n",
       "   channel_most_1  channel_most_2  channel_most_3  channel_most_5  \\\n",
       "0               0               0               0               1   \n",
       "1               0               0               0               1   \n",
       "\n",
       "   channel_most_6  channel_most_8  channel_most_9  channel_most_11  \\\n",
       "0               0               0               0                0   \n",
       "1               0               0               0                0   \n",
       "\n",
       "   channel_most_12  channel_most_13  channel_most_14  channel_most_15  \\\n",
       "0                0                0                0                0   \n",
       "1                0                0                0                0   \n",
       "\n",
       "   channel_most_16  channel_most_18  channel_most_28  channel_most_31  \\\n",
       "0                0                0                0                0   \n",
       "1                0                0                0                0   \n",
       "\n",
       "   channel_most_32  channel_most_37  channel_most_38  channel_most_44  \\\n",
       "0                0                0                0                0   \n",
       "1                0                0                0                0   \n",
       "\n",
       "   channel_most_46  channel_most_48  channel_most_49  channel_most_51  \\\n",
       "0                0                0                0                0   \n",
       "1                0                0                0                0   \n",
       "\n",
       "   channel_most_55  channel_most_56  channel_most_58  channel_most_59  \\\n",
       "0                0                0                0                0   \n",
       "1                0                0                0                0   \n",
       "\n",
       "   channel_most_62  channel_most_70  pages_most_0  pages_most_7  pages_most_9  \\\n",
       "0                0                0             0             0             0   \n",
       "1                0                0             0             0             0   \n",
       "\n",
       "   pages_most_16  pages_most_18  pages_most_19  pages_most_20  pages_most_21  \\\n",
       "0              1              0              0              0              0   \n",
       "1              0              0              0              0              0   \n",
       "\n",
       "   pages_most_26  pages_most_28  pages_most_29  pages_most_30  pages_most_32  \\\n",
       "0              0              0              0              0              0   \n",
       "1              0              0              0              0              1   \n",
       "\n",
       "   pages_most_34  pages_most_36  pages_most_38  pages_most_45  pages_most_47  \\\n",
       "0              0              0              0              0              0   \n",
       "1              0              0              0              0              0   \n",
       "\n",
       "   actions_most_1  actions_most_2  actions_most_3  actions_most_4  \\\n",
       "0               1               0               0               0   \n",
       "1               1               0               0               0   \n",
       "\n",
       "   actions_most_5  actions_most_6  actions_most_7  actions_most_8  \\\n",
       "0               0               0               0               0   \n",
       "1               0               0               0               0   \n",
       "\n",
       "   user_type_0  user_type_1  user_type_2  user_type_3  user_type_4  \\\n",
       "0            1            0            0            0            0   \n",
       "1            1            0            0            0            0   \n",
       "\n",
       "   user_type_5  gender_-99  gender_0  gender_1  device_1  device_2  device_5  \\\n",
       "0            0           0         1         0         0         0         0   \n",
       "1            0           0         0         1         0         0         0   \n",
       "\n",
       "   device_7  device_8  device_9  device_10  device_11  device_12  device_13  \\\n",
       "0         0         0         0          0          0          0          0   \n",
       "1         0         0         0          0          0          0          0   \n",
       "\n",
       "   device_14  device_16  device_17  device_18  device_19  device_20  \\\n",
       "0          0          0          0          0          0          0   \n",
       "1          0          0          0          0          0          0   \n",
       "\n",
       "   device_21  device_23  device_24  device_25  device_26  device_27  \\\n",
       "0          0          0          0          0          0          0   \n",
       "1          0          0          0          0          0          0   \n",
       "\n",
       "   device_28  device_29  device_30  device_31  device_32  device_33  \\\n",
       "0          0          0          0          0          0          0   \n",
       "1          0          0          0          0          0          0   \n",
       "\n",
       "   device_34  device_35  device_36  device_37  device_39  device_40  \\\n",
       "0          0          0          0          0          0          0   \n",
       "1          0          0          0          0          0          1   \n",
       "\n",
       "   device_41  device_42  device_43  device_49  device_50  device_51  \\\n",
       "0          0          0          0          0          0          0   \n",
       "1          0          0          0          0          0          0   \n",
       "\n",
       "   device_52  device_53  device_54  device_55  device_57  device_58  \\\n",
       "0          0          0          0          0          0          0   \n",
       "1          0          0          0          0          0          0   \n",
       "\n",
       "   device_59  device_60  device_63  device_64  device_65  device_66  \\\n",
       "0          0          0          0          0          0          0   \n",
       "1          0          0          0          0          0          0   \n",
       "\n",
       "   device_69  device_70  device_72  device_74  device_75  device_85  \\\n",
       "0          0          0          0          0          0          0   \n",
       "1          0          0          0          0          0          0   \n",
       "\n",
       "   device_89  device_92  device_100  device_101  device_152  device_157  \\\n",
       "0          0          0           0           0           0           0   \n",
       "1          0          0           0           0           0           0   \n",
       "\n",
       "   device_158  device_160  device_161  device_162  device_163  device_166  \\\n",
       "0           0           0           0           0           0           0   \n",
       "1           0           0           0           0           0           0   \n",
       "\n",
       "   device_167  device_171  device_172  device_174  device_175  device_176  \\\n",
       "0           0           0           0           0           0           0   \n",
       "1           0           0           0           0           0           0   \n",
       "\n",
       "   device_177  device_178  device_179  device_180  device_181  device_184  \\\n",
       "0           0           0           0           0           0           0   \n",
       "1           0           0           0           0           0           0   \n",
       "\n",
       "   device_186  device_192  device_195  device_202  device_204  device_205  \\\n",
       "0           0           0           0           0           0           0   \n",
       "1           0           0           0           0           0           0   \n",
       "\n",
       "   device_206  device_207  device_208  device_209  device_210  device_212  \\\n",
       "0           0           0           0           0           0           0   \n",
       "1           0           0           0           0           0           0   \n",
       "\n",
       "   device_214  device_215  device_216  device_217  device_218  device_219  \\\n",
       "0           0           0           0           0           0           0   \n",
       "1           0           0           0           0           0           0   \n",
       "\n",
       "   device_220  device_221  device_222  device_223  device_224  device_225  \\\n",
       "0           0           0           0           0           0           0   \n",
       "1           0           0           0           0           0           0   \n",
       "\n",
       "   device_226  device_227  device_228  device_229  device_230  device_231  \\\n",
       "0           0           0           0           0           0           0   \n",
       "1           0           0           0           0           0           0   \n",
       "\n",
       "   device_232  device_233  device_234  device_235  device_241  device_242  \\\n",
       "0           0           0           0           0           0           0   \n",
       "1           0           0           0           0           0           0   \n",
       "\n",
       "   device_244  device_245  device_246  device_247  device_248  device_249  \\\n",
       "0           0           0           0           0           0           0   \n",
       "1           0           0           0           0           0           0   \n",
       "\n",
       "   device_250  device_251  device_252  device_253  device_254  device_255  \\\n",
       "0           0           0           0           0           0           0   \n",
       "1           0           0           0           0           0           0   \n",
       "\n",
       "   device_267  device_268  device_269  device_270  device_271  device_272  \\\n",
       "0           0           0           0           0           0           0   \n",
       "1           0           0           0           0           0           0   \n",
       "\n",
       "   device_275  device_276  device_277  device_278  device_280  device_281  \\\n",
       "0           0           0           0           0           0           0   \n",
       "1           0           0           0           0           0           0   \n",
       "\n",
       "   device_282  device_283  device_285  device_286  device_287  device_289  \\\n",
       "0           0           0           0           1           0           0   \n",
       "1           0           0           0           0           0           0   \n",
       "\n",
       "   device_290  device_291  device_292  device_293  device_294  device_295  \\\n",
       "0           0           0           0           0           0           0   \n",
       "1           0           0           0           0           0           0   \n",
       "\n",
       "   device_296  device_298  device_299  device_300  device_301  device_302  \\\n",
       "0           0           0           0           0           0           0   \n",
       "1           0           0           0           0           0           0   \n",
       "\n",
       "   device_303  device_304  device_305  device_306  device_307  device_308  \\\n",
       "0           0           0           0           0           0           0   \n",
       "1           0           0           0           0           0           0   \n",
       "\n",
       "   device_309  device_311  device_319  device_327  device_328  device_334  \\\n",
       "0           0           0           0           0           0           0   \n",
       "1           0           0           0           0           0           0   \n",
       "\n",
       "   device_335  device_337  device_339  device_343  device_379  device_397  \\\n",
       "0           0           0           0           0           0           0   \n",
       "1           0           0           0           0           0           0   \n",
       "\n",
       "   device_399  device_401  device_416  device_417  device_418  device_419  \\\n",
       "0           0           0           0           0           0           0   \n",
       "1           0           0           0           0           0           0   \n",
       "\n",
       "   device_420  device_421  device_422  device_423  device_424  device_425  \\\n",
       "0           0           0           0           0           0           0   \n",
       "1           0           0           0           0           0           0   \n",
       "\n",
       "   device_426  device_427  device_428  device_429  device_430  device_431  \\\n",
       "0           0           0           0           0           0           0   \n",
       "1           0           0           0           0           0           0   \n",
       "\n",
       "   device_432  device_433  device_434  device_435  device_443  device_444  \\\n",
       "0           0           0           0           0           0           0   \n",
       "1           0           0           0           0           0           0   \n",
       "\n",
       "   device_445  device_446  device_447  device_448  device_449  device_450  \\\n",
       "0           0           0           0           0           0           0   \n",
       "1           0           0           0           0           0           0   \n",
       "\n",
       "   device_451  device_456  device_457  device_458  device_459  device_460  \\\n",
       "0           0           0           0           0           0           0   \n",
       "1           0           0           0           0           0           0   \n",
       "\n",
       "   device_464  device_465  device_466  device_468  device_470  device_471  \\\n",
       "0           0           0           0           0           0           0   \n",
       "1           0           0           0           0           0           0   \n",
       "\n",
       "   device_472  device_473  device_474  device_476  device_477  device_478  \\\n",
       "0           0           0           0           0           0           0   \n",
       "1           0           0           0           0           0           0   \n",
       "\n",
       "   device_479  device_480  device_481  device_482  device_483  device_489  \\\n",
       "0           0           0           0           0           0           0   \n",
       "1           0           0           0           0           0           0   \n",
       "\n",
       "   device_490  device_492  device_504  device_505  device_509  device_511  \\\n",
       "0           0           0           0           0           0           0   \n",
       "1           0           0           0           0           0           0   \n",
       "\n",
       "   device_512  device_513  device_514  device_516  device_517  device_519  \\\n",
       "0           0           0           0           0           0           0   \n",
       "1           0           0           0           0           0           0   \n",
       "\n",
       "   device_520  device_522  device_524  device_527  device_528  device_530  \\\n",
       "0           0           0           0           0           0           0   \n",
       "1           0           0           0           0           0           0   \n",
       "\n",
       "   device_532  device_533  device_534  device_536  device_538  device_539  \\\n",
       "0           0           0           0           0           0           0   \n",
       "1           0           0           0           0           0           0   \n",
       "\n",
       "   device_541  device_542  device_543  device_544  device_549  device_551  \\\n",
       "0           0           0           0           0           0           0   \n",
       "1           0           0           0           0           0           0   \n",
       "\n",
       "   city_1  city_2  city_3  city_4  city_5  city_6  city_7  city_8  city_9  \\\n",
       "0       0       0       0       0       0       0       0       0       0   \n",
       "1       0       0       0       0       0       0       0       0       0   \n",
       "\n",
       "   city_10  city_11  city_12  city_13  city_14  city_15  city_16  city_17  \\\n",
       "0        0        0        0        0        0        0        0        0   \n",
       "1        0        0        0        0        0        0        0        0   \n",
       "\n",
       "   city_18  city_19  city_20  city_21  city_22  city_23  city_24  city_25  \\\n",
       "0        0        0        0        0        0        0        0        0   \n",
       "1        0        0        0        0        0        0        0        0   \n",
       "\n",
       "   city_26  city_27  city_28  city_29  city_30  city_31  city_32  city_33  \\\n",
       "0        0        0        0        0        0        0        0        0   \n",
       "1        0        0        0        0        0        0        0        0   \n",
       "\n",
       "   city_34  city_35  city_36  city_37  city_38  city_39  city_40  city_41  \\\n",
       "0        0        0        0        0        0        0        0        0   \n",
       "1        0        0        0        0        0        0        0        0   \n",
       "\n",
       "   city_42  city_43  city_44  city_45  city_46  city_47  city_48  city_49  \\\n",
       "0        0        0        0        0        0        0        0        0   \n",
       "1        0        0        0        0        0        0        0        0   \n",
       "\n",
       "   city_50  city_51  city_52  city_53  city_54  city_55  city_56  city_57  \\\n",
       "0        0        0        0        0        0        0        0        0   \n",
       "1        0        0        0        0        0        0        0        0   \n",
       "\n",
       "   city_58  city_59  city_60  city_61  city_62  city_63  city_64  city_65  \\\n",
       "0        0        0        0        0        0        0        0        0   \n",
       "1        0        0        0        0        0        0        0        0   \n",
       "\n",
       "   city_66  city_67  city_68  city_69  city_70  city_71  city_72  city_73  \\\n",
       "0        0        0        0        0        0        0        0        0   \n",
       "1        0        0        0        0        0        0        0        0   \n",
       "\n",
       "   city_74  city_75  city_76  city_77  city_78  city_79  city_80  city_81  \\\n",
       "0        0        0        0        0        0        0        0        0   \n",
       "1        0        0        0        0        0        0        0        0   \n",
       "\n",
       "   city_82  city_83  city_84  city_85  city_86  city_87  city_88  city_89  \\\n",
       "0        0        0        0        0        0        0        0        0   \n",
       "1        0        0        0        0        0        0        0        0   \n",
       "\n",
       "   city_90  city_91  city_92  city_93  city_94  city_95  city_96  city_97  \\\n",
       "0        0        0        0        0        0        0        0        0   \n",
       "1        0        0        0        0        0        0        0        0   \n",
       "\n",
       "   city_98  city_99  city_100  city_101  city_102  city_103  city_104  \\\n",
       "0        0        0         0         0         0         0         0   \n",
       "1        0        0         1         0         0         0         0   \n",
       "\n",
       "   city_105  city_106  city_107  city_108  city_109  city_110  city_111  \\\n",
       "0         0         0         0         0         0         0         0   \n",
       "1         0         0         0         0         0         0         0   \n",
       "\n",
       "   city_112  city_113  city_114  city_115  city_116  city_117  city_118  \\\n",
       "0         0         0         0         0         0         0         0   \n",
       "1         0         0         0         0         0         0         0   \n",
       "\n",
       "   city_119  city_120  city_121  city_122  city_123  city_124  city_125  \\\n",
       "0         0         0         0         0         0         0         0   \n",
       "1         0         0         0         0         0         0         0   \n",
       "\n",
       "   city_126  city_127  city_128  city_129  city_130  city_131  city_132  \\\n",
       "0         0         0         0         0         0         0         0   \n",
       "1         0         0         0         0         0         0         0   \n",
       "\n",
       "   city_133  city_134  city_135  city_136  city_137  city_138  city_139  \\\n",
       "0         0         0         0         0         0         0         0   \n",
       "1         0         0         0         0         0         0         0   \n",
       "\n",
       "   city_140  city_141  city_142  city_143  city_144  city_145  city_146  \\\n",
       "0         0         0         0         0         0         0         0   \n",
       "1         0         0         0         0         0         0         0   \n",
       "\n",
       "   city_147  city_148  city_149  city_150  city_151  city_152  city_153  \\\n",
       "0         0         0         0         0         0         0         0   \n",
       "1         0         0         0         0         0         0         0   \n",
       "\n",
       "   city_154  city_155  city_156  city_157  city_158  city_159  city_160  \\\n",
       "0         0         0         0         0         0         0         0   \n",
       "1         0         0         0         0         0         0         0   \n",
       "\n",
       "   city_161  city_162  city_163  city_164  city_165  city_166  city_167  \\\n",
       "0         0         0         0         0         0         0         0   \n",
       "1         0         0         0         0         0         0         0   \n",
       "\n",
       "   city_168  city_169  city_170  city_171  city_172  city_173  city_174  \\\n",
       "0         0         0         0         0         0         0         0   \n",
       "1         0         0         0         0         0         0         0   \n",
       "\n",
       "   city_175  city_176  city_177  city_178  city_179  city_180  city_181  \\\n",
       "0         0         0         0         0         0         0         0   \n",
       "1         0         0         0         0         0         0         0   \n",
       "\n",
       "   city_182  city_183  city_184  city_185  city_186  city_187  city_188  \\\n",
       "0         0         0         0         0         0         0         0   \n",
       "1         0         0         0         0         0         0         0   \n",
       "\n",
       "   city_189  city_190  city_191  city_192  city_193  city_194  city_195  \\\n",
       "0         0         0         0         0         0         0         0   \n",
       "1         0         0         0         0         0         0         0   \n",
       "\n",
       "   city_196  city_197  city_198  city_199  city_200  city_201  city_202  \\\n",
       "0         0         0         0         0         0         0         0   \n",
       "1         0         0         0         0         0         0         0   \n",
       "\n",
       "   city_203  city_204  city_205  city_206  city_207  city_208  city_209  \\\n",
       "0         0         0         0         0         0         0         0   \n",
       "1         0         0         0         0         0         0         0   \n",
       "\n",
       "   city_210  city_211  city_212  city_213  city_214  city_215  city_216  \\\n",
       "0         0         0         0         0         0         0         0   \n",
       "1         0         0         0         0         0         0         0   \n",
       "\n",
       "   city_217  city_218  city_219  city_220  city_221  city_222  city_223  \\\n",
       "0         0         0         0         0         0         0         0   \n",
       "1         0         0         0         0         0         0         0   \n",
       "\n",
       "   city_224  city_225  city_226  city_227  city_228  city_229  city_230  \\\n",
       "0         0         0         0         0         0         0         0   \n",
       "1         0         0         0         0         0         0         0   \n",
       "\n",
       "   city_231  city_232  city_233  city_234  city_235  city_236  city_237  \\\n",
       "0         0         0         0         0         0         0         0   \n",
       "1         0         0         0         0         0         0         0   \n",
       "\n",
       "   city_238  city_239  city_240  city_241  city_242  city_243  city_244  \\\n",
       "0         0         0         0         0         0         0         0   \n",
       "1         0         0         0         0         0         0         0   \n",
       "\n",
       "   city_245  city_246  city_247  city_248  city_249  city_250  city_251  \\\n",
       "0         0         0         0         0         0         0         0   \n",
       "1         0         0         0         0         0         0         0   \n",
       "\n",
       "   city_252  city_253  city_254  city_255  city_256  city_257  city_258  \\\n",
       "0         0         0         0         0         0         0         0   \n",
       "1         0         0         0         0         0         0         0   \n",
       "\n",
       "   city_259  city_260  city_261  city_262  city_263  city_264  city_265  \\\n",
       "0         0         0         0         0         0         0         0   \n",
       "1         0         0         0         0         0         0         0   \n",
       "\n",
       "   city_266  city_267  city_268  city_269  city_270  city_271  city_272  \\\n",
       "0         0         0         0         1         0         0         0   \n",
       "1         0         0         0         0         0         0         0   \n",
       "\n",
       "   city_273  city_274  city_275  city_276  city_277  city_278  city_279  \\\n",
       "0         0         0         0         0         0         0         0   \n",
       "1         0         0         0         0         0         0         0   \n",
       "\n",
       "   city_280  city_281  city_282  city_283  city_284  city_285  city_286  \\\n",
       "0         0         0         0         0         0         0         0   \n",
       "1         0         0         0         0         0         0         0   \n",
       "\n",
       "   city_287  city_288  city_289  city_290  city_291  city_292  city_293  \\\n",
       "0         0         0         0         0         0         0         0   \n",
       "1         0         0         0         0         0         0         0   \n",
       "\n",
       "   city_294  city_295  city_296  city_297  city_298  city_299  city_300  \\\n",
       "0         0         0         0         0         0         0         0   \n",
       "1         0         0         0         0         0         0         0   \n",
       "\n",
       "   city_301  city_302  city_303  city_304  city_305  city_306  city_307  \\\n",
       "0         0         0         0         0         0         0         0   \n",
       "1         0         0         0         0         0         0         0   \n",
       "\n",
       "   city_308  city_309  city_310  city_311  city_312  city_313  city_314  \\\n",
       "0         0         0         0         0         0         0         0   \n",
       "1         0         0         0         0         0         0         0   \n",
       "\n",
       "   city_315  city_316  city_317  city_318  city_319  city_320  city_321  \\\n",
       "0         0         0         0         0         0         0         0   \n",
       "1         0         0         0         0         0         0         0   \n",
       "\n",
       "   city_322  city_323  city_324  city_325  city_326  city_327  city_328  \\\n",
       "0         0         0         0         0         0         0         0   \n",
       "1         0         0         0         0         0         0         0   \n",
       "\n",
       "   city_329  city_330  city_331  city_332  city_333  city_334  city_335  \\\n",
       "0         0         0         0         0         0         0         0   \n",
       "1         0         0         0         0         0         0         0   \n",
       "\n",
       "   city_336  city_337  city_338  is_vip_-99  is_vip_0  is_vip_1  \n",
       "0         0         0         0           1         0         0  \n",
       "1         0         0         0           1         0         0  "
      ]
     },
     "execution_count": 165,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#拼接\n",
    "x_df=pd.concat([user_data_df.drop(onehot_names,axis=1),onehot_df],axis=1)\n",
    "x_df.head(2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 166,
   "id": "18a49b31",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "训练集和测试集样本量\n",
      "146073\n",
      "36519\n"
     ]
    }
   ],
   "source": [
    "#样本集划分\n",
    "drop_names=['device_id','style_most_name','channel_most_day','is_churn','topics',\n",
    "           'days_list','pages_seq','music_ids_seq','actions_seq']\n",
    "from sklearn.model_selection import train_test_split\n",
    "X_train, X_test, y_train, y_test = train_test_split(x_df.drop(columns=drop_names),\n",
    "                                                    x_df['is_churn'], \n",
    "                                                    test_size=0.2,\n",
    "                                                    stratify=x_df['is_churn'],\n",
    "                                                    random_state=100)\n",
    "print('训练集和测试集样本量')\n",
    "print(len(X_train))\n",
    "print(len(X_test))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 167,
   "id": "9a9a0128",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "训练集\n",
      "Counter({1: 143835, 0: 2238})\n",
      "验证集\n",
      "Counter({1: 35960, 0: 559})\n"
     ]
    }
   ],
   "source": [
    "#查看目标变量是否均衡:\n",
    "#严重不平衡\n",
    "#导入用于计数的包\n",
    "from collections import Counter\n",
    "print('训练集')\n",
    "print(Counter(y_train))\n",
    "print('验证集')\n",
    "print(Counter(y_test))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 168,
   "id": "fb20010f",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Training until validation scores don't improve for 30 rounds\n",
      "[100]\ttraining's auc: 0.930425\ttraining's binary_error: 0.173324\n",
      "Did not meet early stopping. Best iteration is:\n",
      "[100]\ttraining's auc: 0.930425\ttraining's binary_error: 0.173324\n",
      "lightGBM运行完毕\n"
     ]
    }
   ],
   "source": [
    "#lightGBM建模\n",
    "import lightgbm as lgb\n",
    "from lightgbm import LGBMClassifier\n",
    "\n",
    "clf = LGBMClassifier(num_leaves=31,objective='binary',metric='binary_error',is_unbalance=True)\n",
    "\n",
    "clf.fit(X_train,y_train, eval_set= [(X_train, y_train)],\n",
    "        eval_metric='auc', verbose=100, early_stopping_rounds=30)\n",
    "\n",
    "print('lightGBM运行完毕')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 169,
   "id": "868bf478",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "准确率\n",
      "0.9784221911881487\n",
      "f1score\n",
      "0.9890780063203416\n",
      "auc\n",
      "0.5417239588411692\n",
      "混淆矩阵\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "array([[   51,   508],\n",
       "       [  280, 35680]])"
      ]
     },
     "execution_count": 169,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#测试集结果\n",
    "from sklearn import metrics\n",
    "from sklearn.metrics import accuracy_score,roc_auc_score\n",
    "from sklearn.metrics import f1_score \n",
    "from sklearn.metrics import confusion_matrix\n",
    "y_pred0=clf.predict(X_test)\n",
    "print('准确率')\n",
    "print(accuracy_score(y_test,y_pred))\n",
    "print('f1score')\n",
    "print(f1_score(y_test,y_pred)) \n",
    "print('auc')\n",
    "print(roc_auc_score(y_test,y_pred))\n",
    "print('混淆矩阵')\n",
    "confusion_matrix(y_test,y_pred)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 170,
   "id": "13f3582f",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "LightGBM binary classifier with TreeExplainer shap values output has changed to a list of ndarray\n"
     ]
    },
    {
     "data": {
      "image/png": "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25S+9dZbvPTSS1x44YWst956/PrXv2b77bfn3nvvrbcxK2gTERGRzHnmmWf44osv+NWvflV0mX79+vH2228zd+5cfvjDH3LYYYd9nXbUUUdxww03sHjxYl577TX22msvAMaMGUOXLl2YN28eH3/8MSNHjiRJvntx5/Tp0+nZsydt2rT5et+OO+74rcCwrhS0iYiISOZ88skndOjQgZYtiz//bdCgQbRp04Z11lmH4cOHM23aNBYtWgRAq1ateP311/nss89o3749P/zhD7/eP2fOHGbNmkWrVq3o06dPhUHbkiVLaNeu3bf2tWvXjsWLF9dhlN+moE1EREQyZ+ONN2b+/PmsWFHcRRErV67knHPOYfPNN6dt27aUlJQAYfkT4N577+Xhhx+me/fu/OQnP+GZZ54BYMiQIfTq1Yt99tmHnj17cumll1ZYf+vWrfnss8++te+zzz771sxbXSloExERkczZfffdWWeddZg0aVJR+SdOnMjkyZN5/PHHWbRoEeXl5QDkHzKwyy67MHnyZObOncsBBxzAb37zGwDatGnDmDFjePfdd3nggQe44ooreOKJJ75T/7bbbsu77777rZm1adOmse2229ZtoCkK2kRERCRz2rVrx0UXXcRJJ53EpEmTWLZsGV999RVTpkzhrLPO+k7+xYsXs84667DxxhuzbNkyhg4d+nXa8uXLmTBhAosWLaJVq1a0bduWtdYKIdKDDz7IjBkzyOVytGvXjhYtWnydlrbllluy0047ceGFF/LFF19w//3388orr/DrX/+63sas+7RJk/bL//WD/xU39V2jR1jp8VUiIrVWk/uoNaQzzjiDTTfdlBEjRnDYYYfRpk0bdt55Z84999zv5D3yyCN59NFH6dy5MxtttBEXX3wxf/nLX75Ov+OOOxg8eDArV65kq622YsKECQC8/fbbDB48mHnz5tG+fXtOPPFEfvrTn1bYnzvvvJOBAwfSvn17unXrxj333EPHjh3rbbx69qg0aTV59qiCNhERWUNU+OxRLY+KiIiIZICCNhEREZEMUNAmAJjZMDOb2tj9EBERkYo1jTMJZY1nZusD1wAHxl33AoPd/fPG65WIiEh2aKZN6oWZtaomy1XA1sBWwJbA94ErGrpfIiIiawrNtDVRZrYpcCOwB/AxcBlwE9DD3cvN7BjgFKAr8C5wtrs/FssOB/oAzwFHxyr/4u4XpOrfFxgFdAOmAjMK2t8YuBzYB1gX+Cfwe3f/OKaXA7cAPwV2ie3cWclY1gMOB/ZLlT8PKDOz09z9i9ocIxERkeZEM21N1wRgOSEo6w0ckU+IAdvZwGFAe+Bc4D4z65UqvwcwG9gM+CUw1Mx+HMtvDtwHjAQ2BK4GjknVnwCTgBywHdAdWAxMLOjjMcDpQBtgchVj2YoQ+L2Y2vcSsB5h1k1ERESqoZm2JsjMugB7AZu7+2fAZ2Z2MfCTmOUU4CJ3nxa3HzazfwKHACPivrfc/fr4+lkzexkw4N8x3/PuPj6mP2Zmk4DOcXvn+NPX3b+MfToLmG9mXdz9/ZjvRnf/b3xd1blp+QevLUrty79uW0U5ERERiRS0NU354Gl2at+s1OsewLVmdnVqX0vg/dT2nII6l/JN8NQFKC9In5lqtwewDvCxmaXzfEFYTs23U1hHZfIPYmsHLEy9BvjsO7lFRETqwfDhw5kxYwbjx4+vPnMGKGhrmj6Iv7sRzlfLv86bBVzg7nfXof6fF+wrKah/KbCRu6+qop6q0tL+Rwj4fgj8I+77AWF27q0i6xARkaYiOaBh66/BU2smTpzIFVdcwZtvvkmbNm3YaaedOPfcc+ndu3fD9a8S5513HpMmTeKNN95g2LBhDB8+vF7r1zltTVBcfpwKXGpmbcysIzAsleVKYLiZ7WRmiZmtZ2a9zWzrIpu4E9jVzA41s5Zm1hc4IN0FYBpwdbwgATPraGaH1HI8nwPjgYvMrJOZdQIuAm7XRQgiIlJbV1xxBaeeeipDhw7l448/Zvbs2Zx44olMnlzVadYNp1evXlx++eXsu+++DVK/gram67fA+oSlyH8D+Vm1L939RsKVnbcCCwjLqOcB1d12AwB3nwH0B84nLFeeRrgyNZ++Ctif8OyzF81sMfAssGcdxnMqYVYt//O/2K6IiEiNLVq0iPPPP59rr72WAw88kA022IBWrVpRWlrKqFGjKixz0EEHsemmm9KuXTv22GMPpk+f/nXaww8/zDbbbEObNm3o3Lkzo0ePBmD+/Pnst99+bLjhhmy00Ub06dOHVasqXmgaMGAA/fr1o02bNhWm15WWR5sod58D7JffNrOfA18CH8X024DbKik7vIJ9exZsPwA8UEX7nwInxZ+K0kuqHsF38i8FBsUfERGROnnmmWf44osv+NWvflV0mX79+nHLLbew9tprc/bZZ3PYYYfx8ssvA3DUUUdx11130adPHxYsWMDMmTMBGDNmDF26dGHevHkAPPvssyRJhc9zb3AK2pooM9uJcM7Yq4QLA0YAf3P3XGP2S0REpCn45JNP6NChAy1bFh/KDBr0zbzB8OHDad++PYsWLaJdu3a0atWK119/nR133JH27dvTvn17AFq1asWcOXOYNWsWvXr1ok+fPvU+lmJpebTpak+4l9oS4GngFcKtPpokM5tiZksq+mnsvomIyJpn4403Zv78+axYsaKo/CtXruScc85h8803p23btpSUlABh+RPg3nvv5eGHH6Z79+785Cc/4ZlnngFgyJAh9OrVi3322YeePXty6aWXNsh4iqGZtibK3f8J9Ko2YxPh7v0aot4HtppCaWlpcZnPnNQQXRARkSZo9913Z5111mHSpEn079+/2vwTJ05k8uTJPP7445SUlLBo0SLat29PLhcWsHbZZRcmT57MV199xTXXXMNvfvMb3nvvPdq0acOYMWMYM2YMr732GnvttRe77LILe++9d0MP8Ts00yYiIiKZ065dOy666CJOOukkJk2axLJly/jqq6+YMmUKZ5111nfyL168mHXWWYeNN96YZcuWMXTo0K/Tli9fzoQJE1i0aBGtWrWibdu2rLVWCJEefPBBZsyYQS6Xo127drRo0eLrtEJfffUVX3zxBatWrWLFihV88cUXrFy5st7GrJk2ERERqZka3EetIZ1xxhlsuummjBgxgsMOO4w2bdqw8847c+65534n75FHHsmjjz5K586d2Wijjbj44ov5y1/+8nX6HXfcweDBg1m5ciVbbbUVEyZMAODtt99m8ODBzJs3j/bt23PiiSfy05/+tML+HHPMMdx22zfXCF5yySXceuutDBw4sF7Gm+SnBUWaorKyslzRy6MiIiJrhgovT9XyqIiIiEgGKGgTERERyQAFbSIiIiIZoKBNREREJAMUtImIiIhkgII2ERERkQxQ0CYiIiKSAQraRERERDJAQZuIiIhIBihoExEREckABW0iIiIiGaCgTURERCQD9MB4adLWWWed15YvX/5FY/ejIbVs2bLDihUr5jd2PxqSxrhm0BjXDGv6GNeQ8c3P5XK/KNzZsjF6IlKs7bff/gt3t8buR0MyM9cYs09jXDNojNm3Jo9Py6MiIiIiGaCg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\n",
      "text/plain": [
       "<Figure size 576x684 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "#基于SHAP值的解释\n",
    "import shap\n",
    "shap_values = shap.TreeExplainer(clf.booster_).shap_values(X_test)\n",
    "shap.summary_plot(shap_values, X_test)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 171,
   "id": "d714e5ba",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x684 with 2 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "shap.summary_plot(shap_values[1], X_test)\n",
    "#可以发现30天内最后1次使用日期越靠后越容易留存，vip更容易留存"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "d1f70dd6",
   "metadata": {},
   "source": [
    "### 小结\n",
    "* 1.绝大多数用户(约98%)30天后仍持续使用，流失数据呈现高度不平衡性。\n",
    "* 2.利用特征工程+lightGBM的方法，可以预测用户的流失情况，F1得分接近0.99。\n",
    "* 3.通过SHAP分析发现，与流失(留存)关系最密切的5个变量：最后1次使用日期(day_max)，使用天数(day_len)，平均每(活跃)天收听的歌曲数(music_ids_unique_day)，是否vip客户(is_vip)，平均每(活跃)天操作次数(actions_unique_day)。"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "869c7a43",
   "metadata": {},
   "source": [
    "## 3.3.LSTM流失率建模"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "49306994",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "读取完成\n"
     ]
    }
   ],
   "source": [
    "#读取pickle文件\n",
    "import pickle\n",
    "df=open('./user_data_df.pkl','rb')#注意此处是rb\n",
    "user_data_df=pickle.load(df)\n",
    "df.close()\n",
    "print('读取完成')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "7bde99cc",
   "metadata": {},
   "outputs": [],
   "source": [
    "#序列参数提取\n",
    "#pages_max=max(user_data_df['pages_seq'].map(max))\n",
    "#actions_max=max(user_data_df['actions_seq'].map(max))\n",
    "#print(pages_max)\n",
    "#print(actions_max)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "5b21ab1c",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "训练集和测试集样本量\n",
      "146073\n",
      "36519\n"
     ]
    }
   ],
   "source": [
    "#样本集划分\n",
    "import numpy as np\n",
    "import pandas as pd\n",
    "from collections import Counter\n",
    "from sklearn.model_selection import train_test_split\n",
    "X_train, X_test, y_train, y_test = train_test_split(user_data_df.loc[:,['days_list','pages_seq','actions_seq']],\n",
    "                                                    user_data_df['is_churn'], \n",
    "                                                    test_size=0.2,\n",
    "                                                    stratify=user_data_df['is_churn'],\n",
    "                                                    random_state=100)\n",
    "print('训练集和测试集样本量')\n",
    "print(len(X_train))\n",
    "print(len(X_test))\n",
    "X_train=X_train.reset_index(drop=True)\n",
    "X_test=X_test.reset_index(drop=True)\n",
    "y_train=y_train.reset_index(drop=True)\n",
    "y_test=y_test.reset_index(drop=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "a8a53b89",
   "metadata": {},
   "outputs": [],
   "source": [
    "#lstm序列预处理\n",
    "import torch\n",
    "from torch import nn, optim\n",
    "from torch.nn import functional as F\n",
    "from torch.utils.data import Dataset, DataLoader\n",
    "from torch.nn.utils.rnn import pad_sequence, pack_padded_sequence\n",
    "from collections import defaultdict\n",
    "\n",
    "#tqdm是一个Python模块，能以进度条的方式显式迭代的进度\n",
    "from tqdm.auto import tqdm\n",
    "\n",
    "class LstmDataset(Dataset):\n",
    "    def __init__(self, data):\n",
    "        self.data = data\n",
    "    def __len__(self):\n",
    "        return len(self.data)\n",
    "    def __getitem__(self, i):\n",
    "        return self.data[i]\n",
    "\n",
    "def collate_fn(examples):\n",
    "    lengths = torch.tensor([len(ex[0]) for ex in examples])\n",
    "    inputs = [torch.tensor(ex[0]) for ex in examples]\n",
    "    targets = torch.tensor([ex[1] for ex in examples], dtype=torch.long)\n",
    "    # 对batch内的样本进行padding，使其具有相同长度\n",
    "    inputs = pad_sequence(inputs, batch_first=True)\n",
    "    return inputs, lengths, targets\n",
    "\n",
    "class LSTM(nn.Module):\n",
    "    def __init__(self, vocab_size, embedding_dim, hidden_dim, num_class):\n",
    "        super(LSTM, self).__init__()\n",
    "        self.embeddings = nn.Embedding(vocab_size, embedding_dim)\n",
    "        self.lstm = nn.LSTM(embedding_dim, hidden_dim, batch_first=True)\n",
    "        self.output = nn.Linear(hidden_dim, num_class)\n",
    "\n",
    "    def forward(self, inputs, lengths):\n",
    "        embeddings = self.embeddings(inputs)\n",
    "        x_pack = pack_padded_sequence(embeddings, lengths, batch_first=True, enforce_sorted=False)\n",
    "        hidden, (hn, cn) = self.lstm(x_pack)\n",
    "        outputs = self.output(hn[-1])\n",
    "        log_probs = F.log_softmax(outputs, dim=-1)\n",
    "        return log_probs\n",
    "\n",
    "embedding_dim = 128\n",
    "hidden_dim = 256\n",
    "num_class = 2\n",
    "batch_size = 32\n",
    "num_epoch = 5"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "3d236d49",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "活跃日期序列\n"
     ]
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "86a7ac81540841eea3935961f6402927",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Training Epoch 0:   0%|          | 0/4565 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Loss: 1120.25\n"
     ]
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "b91f2437f8294f87b34db8b8e2ff1b58",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Training Epoch 1:   0%|          | 0/4565 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Loss: 995.60\n"
     ]
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "72e909291a8440c4971a0008270c3b8c",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Training Epoch 2:   0%|          | 0/4565 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Loss: 1001.38\n"
     ]
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "2a3c0f411d574a9b90d150d515620c42",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Training Epoch 3:   0%|          | 0/4565 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Loss: 984.42\n"
     ]
    },
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "4a0441bc51a54bf98bf435e99c4531f4",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Training Epoch 4:   0%|          | 0/4565 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Loss: 968.40\n"
     ]
    }
   ],
   "source": [
    "#以日期序列作为输入\n",
    "#套用NLP中词典的概念，词典是所有词标记的序数，能够覆盖所有句子中出现的词，例如从1到28，这里是30天，从0到30\n",
    "print('活跃日期序列')\n",
    "vocab_len=len(range(0,31))\n",
    "\n",
    "#构建元组\n",
    "train_data = [(x,y) for x, y in zip(X_train['days_list'], y_train)]\n",
    "test_data = [(x,y) for x, y in zip(X_test['days_list'], y_test)]\n",
    "\n",
    "train_dataset = LstmDataset(train_data)\n",
    "test_dataset = LstmDataset(test_data)\n",
    "train_data_loader = DataLoader(train_dataset, batch_size=batch_size, collate_fn=collate_fn, shuffle=True)\n",
    "test_data_loader = DataLoader(test_dataset, batch_size=1, collate_fn=collate_fn, shuffle=False)\n",
    "\n",
    "#加载模型\n",
    "device = torch.device('cuda' if torch.cuda.is_available() else 'cpu')\n",
    "model = LSTM(vocab_len, embedding_dim, hidden_dim, num_class)\n",
    "model.to(device) #将模型加载到GPU中（如果已经正确安装）\n",
    "\n",
    "#训练过程\n",
    "\n",
    "nll_loss = nn.NLLLoss(weight=torch.FloatTensor([10,1]))#由于数据不均衡，损失函数需要权重\n",
    "optimizer = optim.Adam(model.parameters(), lr=0.001) #使用Adam优化器\n",
    "\n",
    "model.train()\n",
    "for epoch in range(num_epoch):\n",
    "    total_loss = 0\n",
    "    for batch in tqdm(train_data_loader, desc=f\"Training Epoch {epoch}\"):\n",
    "        inputs, lengths, targets = [x.to(device) for x in batch]\n",
    "        #print('inputs.shape:',inputs.shape)\n",
    "        #print('lengths.shape:',lengths.shape)\n",
    "        #print('targets.shape:',targets.shape)\n",
    "        #由于原始数据存在字符串不规范，需要异常处理\n",
    "        try:\n",
    "            log_probs = model(inputs, lengths)\n",
    "            loss = nll_loss(log_probs, targets)\n",
    "            optimizer.zero_grad()\n",
    "            loss.backward()\n",
    "            optimizer.step()\n",
    "            total_loss += loss.item()\n",
    "        except:\n",
    "            pass\n",
    "    print(f\"Loss: {total_loss:.2f}\")\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "80d335b6",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "0fd3d2596e9349e1b6e7ee24fc81e91a",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "Testing:   0%|          | 0/36519 [00:00<?, ?it/s]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Acc: 0.97\n"
     ]
    }
   ],
   "source": [
    "#测试过程\n",
    "prob_all = []\n",
    "lable_all = []\n",
    "acc=0\n",
    "for batch in tqdm(test_data_loader, desc=f\"Testing\"):\n",
    "    inputs, lengths, targets = [x.to(device) for x in batch]\n",
    "    with torch.no_grad():\n",
    "        try:\n",
    "            output = model(inputs, lengths)\n",
    "            prob_all.extend(output.argmax(dim=1).cpu().numpy())\n",
    "            lable_all.extend(targets.numpy())\n",
    "            acc += (output.argmax(dim=1) == targets).sum().item()\n",
    "        except:\n",
    "            pass\n",
    "#输出在测试集上的准确率\n",
    "print(f\"Acc: {acc / len(test_data_loader):.2f}\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "b6a1312d",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "准确率\n",
      "0.9688920532340216\n",
      "f1score\n",
      "0.9841212155097704\n",
      "auc\n",
      "0.6495953625578644\n",
      "混淆矩阵\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "array([[  179,   380],\n",
       "       [  756, 35203]])"
      ]
     },
     "execution_count": 17,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#测试集结果\n",
    "from sklearn import metrics\n",
    "from sklearn.metrics import accuracy_score,roc_auc_score\n",
    "from sklearn.metrics import f1_score \n",
    "from sklearn.metrics import confusion_matrix\n",
    "print('准确率')\n",
    "print(accuracy_score(lable_all,prob_all))\n",
    "print('f1score')\n",
    "print(f1_score(lable_all,prob_all)) \n",
    "print('auc')\n",
    "print(roc_auc_score(lable_all,prob_all))\n",
    "print('混淆矩阵')\n",
    "confusion_matrix(lable_all,prob_all)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7ec91711",
   "metadata": {},
   "source": [
    "### 小结\n",
    "* 1.仅使用用户活跃天数序列(例如[2,4,15]代表第2,4,15天有操作)，LSTM也能较准确预测用户的流失情况，F1得分为0.98，略低于lightGBM模型。\n",
    "* 2.LSTM对硬件资源消耗大，运行很慢，预期想尝试用户操作类型序列和页面序列，单个Epoch都需要40多个小时，就没有处理。\n",
    "* 3.LSTM的参数很多，由于资源有限暂时忽略，后续可以尝试。"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.10"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
